rougail/doc/check/function.md

1.9 KiB

Fonction de vérification

Vérification stricte des valeurs

Une fonction de vérification est une fonction complémentaire au type qui permet de valider plus précisement le contenu d'une variable.

Voici un exemple simple de validation des valeurs :

<variables>
  <variable name="my_variable"/>
</variables>
<constraints>
  <check name="islower">
    <target>my_variable</target>
  </check>
</constraints>

En YAML :

variables:
- variable:
    name: my_variable
constraints:
- check:
  - name: islower
    target:
    - text: my_variable

La cible (de type variable) 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 :

def islower(value):
    if value is None:
        return
    if not value.islower():
        raise ValueError(f'"{value}" is not lowercase string')

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.

À partir de maintenant seule None et des valeurs en minuscule seront autorisés.

Il est possible de définir des paramètres à cette fonction.

Vérification des valeurs avec avertissement

Dans la contrainte, il est possible de spécifier le niveau d'erreur et le mettre en avertissement :

<check name="islower" level="warning">
  <target>my_variable</target>
</check>

En YAML :

- check:
  - name: islower
    level: warning
    target:
    - text: my_variable

Dans ce cas une valeur avec une majuscule sera accepté, mais un message d'avertissement apparaitra.