Coverage for src / answers / schema.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.12.0, created at 2025-11-21 16:36 +0000

1# vim: foldmarker=[[,]] foldmethod=marker 

2import cerberus 

3 

4# https://docs.python-cerberus.org/en/stable/validation-rules.html 

5SCHEMA = r""" 

6--- 

7answers: # [[ 

8 type: dict 

9 default: {} 

10 nullable: true 

11 check_with: answers 

12 keysrules: 

13 type: string 

14 regex: '[a-zA-Z0-9_]+' 

15# ]] 

16""" 

17 

18 

19class LocalValidator(cerberus.Validator): 

20 def _check_with_answers(self, _field, value): 

21 if value is None: 

22 return 

23 

24 # Check that all dict values are string, ints or booleans 

25 for k, v in value.items(): 

26 if type(v) in [str, int, bool]: 

27 continue 

28 self._error(k, "Value must be string, integer or boolean") 

29 return