Fix percentage validation for wrong data type input (#3524)

Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
This commit is contained in:
Maurice Makaay 2022-06-07 13:00:27 +02:00 committed by GitHub
parent 31c4551890
commit ebca936b7e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1086,16 +1086,21 @@ def possibly_negative_percentage(value):
except ValueError: except ValueError:
# pylint: disable=raise-missing-from # pylint: disable=raise-missing-from
raise Invalid("invalid number") raise Invalid("invalid number")
if value > 1: try:
msg = "Percentage must not be higher than 100%." if value > 1:
if not has_percent_sign: msg = "Percentage must not be higher than 100%."
msg += " Please put a percent sign after the number!" if not has_percent_sign:
raise Invalid(msg) msg += " Please put a percent sign after the number!"
if value < -1: raise Invalid(msg)
msg = "Percentage must not be smaller than -100%." if value < -1:
if not has_percent_sign: msg = "Percentage must not be smaller than -100%."
msg += " Please put a percent sign after the number!" if not has_percent_sign:
raise Invalid(msg) msg += " Please put a percent sign after the number!"
raise Invalid(msg)
except TypeError:
raise Invalid( # pylint: disable=raise-missing-from
"Expected percentage or float between -1.0 and 1.0"
)
return negative_one_to_one_float(value) return negative_one_to_one_float(value)