2021-02-15 15:17:23 +01:00
|
|
|
# Fonction de vérification
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
## Vérification stricte des valeurs
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
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 :
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2022-11-03 22:17:43 +01:00
|
|
|
```xml
|
2021-02-10 08:19:33 +01:00
|
|
|
<variables>
|
2021-12-11 16:33:55 +01:00
|
|
|
<variable name="my_variable"/>
|
2021-02-10 08:19:33 +01:00
|
|
|
</variables>
|
|
|
|
<constraints>
|
2021-12-11 16:33:55 +01:00
|
|
|
<check name="islower">
|
|
|
|
<target>my_variable</target>
|
|
|
|
</check>
|
2021-02-10 08:19:33 +01:00
|
|
|
</constraints>
|
|
|
|
```
|
|
|
|
|
2022-11-02 22:52:50 +01:00
|
|
|
En YAML :
|
|
|
|
|
2022-11-03 22:17:43 +01:00
|
|
|
```yml
|
2022-11-02 22:52:50 +01:00
|
|
|
variables:
|
|
|
|
- variable:
|
|
|
|
name: my_variable
|
|
|
|
constraints:
|
|
|
|
- check:
|
|
|
|
- name: islower
|
|
|
|
target:
|
|
|
|
- text: my_variable
|
|
|
|
```
|
|
|
|
|
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
La [cible (de type variable)](../target/variable.md) de la fonction de vérification est ici "my_variable".
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
Dans cette exemple, la valeur de la variable "my_variable" va être validé par la fonction islower.
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
Voici le contenu de la fonction :
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2022-11-03 22:17:43 +01:00
|
|
|
```python
|
2021-02-15 15:17:23 +01:00
|
|
|
def islower(value):
|
|
|
|
if value is None:
|
|
|
|
return
|
|
|
|
if not value.islower():
|
|
|
|
raise ValueError(f'"{value}" is not lowercase string')
|
2021-02-10 08:19:33 +01:00
|
|
|
```
|
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
Une fonction de vérification doit prendre en compte 2 aspects important :
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
- 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.
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
À partir de maintenant seule None et des valeurs en minuscule seront autorisés.
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2021-02-16 10:22:29 +01:00
|
|
|
Il est possible de définir des [paramètres](../param/README.md) à cette fonction.
|
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
## Vérification des valeurs avec avertissement
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
Dans la contrainte, il est possible de spécifier le niveau d'erreur et le mettre en avertissement :
|
2021-02-10 08:19:33 +01:00
|
|
|
|
2022-11-03 22:17:43 +01:00
|
|
|
```xml
|
2021-02-15 15:17:23 +01:00
|
|
|
<check name="islower" level="warning">
|
2021-12-11 16:33:55 +01:00
|
|
|
<target>my_variable</target>
|
2021-02-15 15:17:23 +01:00
|
|
|
</check>
|
2021-02-10 08:19:33 +01:00
|
|
|
```
|
|
|
|
|
2022-11-02 22:52:50 +01:00
|
|
|
En YAML :
|
|
|
|
|
2022-11-03 22:17:43 +01:00
|
|
|
```yml
|
2022-11-02 22:52:50 +01:00
|
|
|
- check:
|
|
|
|
- name: islower
|
|
|
|
level: warning
|
|
|
|
target:
|
|
|
|
- text: my_variable
|
|
|
|
```
|
|
|
|
|
2021-02-15 15:17:23 +01:00
|
|
|
Dans ce cas une valeur avec une majuscule sera accepté, mais un message d'avertissement apparaitra.
|