Giving an integer value as default for a double, causes the validation to fail
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Reproduce the failure with the provided openapi.yaml using openapi_spec_validator.readers.read_from_filename and validate_spec. Compare validation of integer and floating-point defaults for a number with format double; done means the intended behavior is established and covered by a regression test, while preserving the valid 15.0 case.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi,
I noticed that there is a breaking change from 0.2.9 to 0.3.0, but I am not sure if it is intentional or not.
tl;dr: an integer is no longer considered a valid (default) value for a double. In the example below, 15 fails the validation, but 15.0 is fine.
PS: I am using openapi-spec-validator through the connexion library.
Steps to reproduce
python -m venv .venv
source .venv/bin/activate
pip install "openapi-spec-validator@0.3.0"
>>> from openapi_spec_validator import validate_spec
>>> from openapi_spec_validator.readers import read_from_filename
>>>
>>> spec_dict, spec_url = read_from_filename('./openapi.yaml')
>>> validate_spec(spec_dict)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<current working directory>/.venv/lib/python3.9/site-packages/openapi_spec_validator/shortcuts.py", line 7, in validate
return validator_callable(spec, spec_url=spec_url)
File "<current working directory>/__app__/.venv/lib/python3.9/site-packages/openapi_spec_validator/validators.py", line 48, in validate
raise err
openapi_spec_validator.exceptions.OpenAPIValidationError: 15 is not a 'double'
Failed validating 'format' in schema:
{'default': 15,
'format': 'double',
'maximum': 60,
'minimum': 15,
'nullable': False,
'type': 'number'}
On instance:
15
where openapi.yaml is defined as
openapi: "3.0.3"
info:
title: API
version: "1.0.0"
servers:
- url: http://localhost/api
description: Used for local development.
paths:
/foo:
get:
parameters:
- in: query
name: duration
required: false
schema:
type: number
format: double
default: 15
maximum: 60
minimum: 15
example: 53
responses:
200:
description: ""
content:
text/plain: {}
Changing default: 15 to default: 15.0 works as expected.
In version 0.2.9, the OpenAPI specification above was considered valid.
- Lingua principale
- Python
- Stelle
- 409
- Fork
- 73
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di python-openapi/openapi-spec-validator
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 30/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
python-openapi/openapi-spec-validator#400 · 1 commento ·
-
kind/bug/confirmed
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
python-openapi/openapi-spec-validator#373 · 1 commento ·
Tutte le issue di python-openapi/openapi-spec-validator
Issue simili
-
documentation help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
simonw/sqlite-utils#872 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100