You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 list
voluptuous.error.MultipleInvalid: length of value must be at least 2
The text was updated successfully, but these errors were encountered:
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 list
voluptuous.error.MultipleInvalid: length of value must be at least 2
The text was updated successfully, but these errors were encountered: