-
Notifications
You must be signed in to change notification settings - Fork 220
Description
Any chance for more comprehensive error returns for Any() failures?
I wanted to make a Schema where a string or list of strings (with a defined list length) was possible.
I wrote it as such:
b = Schema(Any(str, All([str], Length(min=2))))
And tested it with the following lines:
b(3)b('3')b(['3'])b(['3', '4'])
These lines fail as expected - but the returned error message is either:
-
Not correct (Line 3) -
voluptuous.error.MultipleInvalid: expected str
-- This being the error for not fulfilling the 1st arg of the Any, yet as a list the 2nd arg failing would be more pertinent. -
Not comprehensive (Line 1) -
voluptuous.error.MultipleInvalid: expected str
-- By failing all of the Any conditions, surely something more general / comprehensive should be thrown?
By swapping the arg order, the correct error is thrown on line 3 - although forcefully & and not by way of IDing the closest culprit in failure. Line 1 (expectedly) is still specific.
b = Schema(Any(All([str], Length(min=2)), str))
voluptuous.error.MultipleInvalid: expected a listvoluptuous.error.MultipleInvalid: length of value must be at least 2