hmxustin / aval

Abstract Validator
MIT License
0 stars 0 forks source link

Тип ошибки = None #2

Open hmxustin opened 2 months ago

hmxustin commented 2 months ago

При негативном тестировании на основе фрагмента, представленного ниже тип ошибки возвращается как None

import aval as v

def is_string(obj: v.VObj, params: v.VParams) -> None:
    t = type(obj)
    if t != str:
        raise v.ValError(
            f'Полученный объект {repr(obj)} имеет некорректный тип {t}. '
            f'Требуется строка'
        )

def correct_length(obj: v.VObj, params: v.VParams) -> None:
    mn = params.get('min_length', 1)
    mx = params.get('max_length', 32)
    ln = len(obj)
    if not mn <= ln <= mx:
        raise v.ValError(
            f'Некорректная длина строки. Требуется строка длинной в пределах '
            f'от {mn} до {mx} (включительно). '
            f'Фактическая длина полученной строки составляет {ln}'
        )

val = v.AVal([
    is_string,
    correct_length
])

val.validate('Очень длинная строка, длина которой, явно и ощутимо '
             'больше 32 символов', min_length=2, max_length=5)

image