From e57cf4dea851524904bc5f5e566915a668c84363 Mon Sep 17 00:00:00 2001 From: gwen Date: Thu, 11 Jul 2024 17:13:28 +0200 Subject: [PATCH] sub attributes not allowed --- src/rougail/tiramisureflector.py | 8 ++--- .../readme.txt | 32 ------------------- 2 files changed, 4 insertions(+), 36 deletions(-) delete mode 100644 tests/dictionaries/90_optional_parameter_in_variable_default/readme.txt diff --git a/src/rougail/tiramisureflector.py b/src/rougail/tiramisureflector.py index d6e23e335..418b0d18f 100644 --- a/src/rougail/tiramisureflector.py +++ b/src/rougail/tiramisureflector.py @@ -441,17 +441,17 @@ class Variable(Common): ) return if self.elt.type == "choice": - keys["values"] = self.populate_calculation(self.elt.choices, return_a_tuple=True) + raise DictConsistencyError("Sub-attributes not allowed in a 'choices' attribute", 100, self.elt.xmlfiles) if self.elt.path in self.objectspace.multis: keys["multi"] = self.objectspace.multis[self.elt.path] - if not hasattr(self.elt, "default"): - print('FIXME CA EXISTE!!!') if hasattr(self.elt, "default") and self.elt.default is not None: try: keys["default"] = self.populate_calculation(self.elt.default) except VariableCalculationDependencyError: pass - # mettre dans tous les populate_calculation() + for attribute in ['frozen', 'hidden', "mandatory", "disabled"]: + if hasattr(self.elt, attribute): + raise DictConsistencyError(f"Sub-attributes not allowed in a '{attribute}' attribute", 100, self.elt.xmlfiles) if self.elt.path in self.objectspace.default_multi: keys["default_multi"] = self.populate_calculation(self.objectspace.default_multi[self.elt.path]) if self.elt.validators: diff --git a/tests/dictionaries/90_optional_parameter_in_variable_default/readme.txt b/tests/dictionaries/90_optional_parameter_in_variable_default/readme.txt deleted file mode 100644 index bd641280c..000000000 --- a/tests/dictionaries/90_optional_parameter_in_variable_default/readme.txt +++ /dev/null @@ -1,32 +0,0 @@ - --- - version: 1.1 - var1: - default: - type: jinja - jinja: | - val - params: - var1: - type: variable - variable: _.var2 - optional: true - - - --- - version: 1.1 - var1: - default: - type: variable - variable: _.var2 - optional: true - ---- - le 1er dico fonctionne - si on fait une variable dans un parametre on peut la mettre optionnelle (si la variable est déclaré ca passe la variable en parametre, si la variable n'existe pas ca ne passe pas le parametre) - dans notre cas la variable n'existe pas donc ne passe pas le parametre - dans le 2eme ca on ne fait pas un calcul via jinja mais récupère directement la valeur de la variable - sauf que le optional n'existe pas pour un calcul (juste pour un parametre) - faudrait : - 1/ ajouter cette possibilité - voir s'il n'y a pas d'autres manque - (c'étaot ele 2)