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)