python-validators / validators

Python Data Validation for Humans™.
MIT License
960 stars 152 forks source link

exception should be raised for badly-formed calls #300

Closed guruofgentoo closed 5 months ago

guruofgentoo commented 12 months ago

With the recent change to email validator signature, this previously-correct usage now fails:

domain_whitelist = ['microsoft.com']
email('bill.gates@microsoft.com', domain_whitelist)
ValidationFailure(func=email, args={'reason': 'email() takes 1 positional argument but 2 were given', 'value': 'bill.gates@microsoft.com'})

But that's not a validation issue - it's a programming issue, and one that becomes difficult to track down when the form validation library is checking True/False and reporting an invalid email address.

When the error is not because of the input being validated, but rather due to the way the validator is called, we need to have exceptions raised.

yozachar commented 12 months ago

Note to self: related #139

guruofgentoo commented 12 months ago

Just to push back on the duplicate tag a little bit: I don't envision ValidationFailure being raised here (which seems to be what #139 argues for), because it's not a validation exception. I would expect the underlying exception to be raised, rather than being trapped and returned differently.