[Bug]: Query parameter validation fails to match empty string when listed as a valid enum value
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
Línea de trabajo
Start with the OpenAPI.from_dict and MockRequest reproduction, then trace iter_request_errors through query-parameter enum validation. Add a regression test covering status= when the enum includes an empty string, and confirm the request is accepted without a ParameterValidationError.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Actual Behavior
Run the following code:
from openapi_core import OpenAPI
from openapi_core.testing import MockRequest
SPEC = {
"openapi": "3.2.0",
"info": {"title": "Sample", "version": "1.0.0"},
"paths": {
"/api": {
"get": {
"tags": ["Sample"],
"parameters": [
{
"name": "status",
"in": "query",
"schema": {"enum": ["Active", "Inactive", "Pending", ""]},
}
]
}
}
},
"tags": [{"name": "Sample"}],
}
openapi = OpenAPI.from_dict(SPEC)
# Empty query parameter: status=
request = MockRequest(
host_url="http://localhost",
method="get",
path="/api",
args={"status": ""},
)
if hasattr(openapi, "iter_request_errors"):
errors = list(openapi.iter_request_errors(request))
if errors:
print("INVALID")
for e in errors:
print(f" {type(e).__name__}: {e}")
else:
print("VALID")
else:
try:
openapi.validate_request(request)
print("VALID")
except Exception as exc:
print("INVALID")
print(f" {type(exc).__name__}: {exc}")
It prints:
INVALID
ParameterValidationError: Query parameter error: status
Expected Behavior
It should print VALID.
OpenAPI Core Version
0.23.1
See https://github.com/OAI/OpenAPI-Specification/discussions/5411
- Lenguaje dominante
- Python
- Estrellas
- 368
- Forks
- 140
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de python-openapi/openapi-core
-
kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
python-openapi/openapi-core#1188 · 2 comentarios ·
-
kind/bug
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
python-openapi/openapi-core#1225 · 2 comentarios ·
-
kind/bug
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
python-openapi/openapi-core#1212 ·
-
kind/bug kind/bug/confirmed
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
python-openapi/openapi-core#1180 · 3 comentarios ·
-
kind/enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 32/100
python-openapi/openapi-core#1142 ·
Todos los issues de python-openapi/openapi-core
Issues similares
-
documentation help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
simonw/sqlite-utils#872 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100