alecthomas / alecthomas/voluptuous

Inconsistent error due to ordering of Any() arguments

Abierto
#413 0 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
1.9k
Forks
237
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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:
1) `b(3)`
2) `b('3')`
3) `b(['3'])`
4) `b(['3', '4'])`

These lines fail as expected - but the returned error message is either:

1. 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.

2. 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))`
1) `voluptuous.error.MultipleInvalid: expected a list`
3) `voluptuous.error.MultipleInvalid: length of value must be at least 2`

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.