Giving an integer value as default for a double, causes the validation to fail
還沒有人認領這個 Issue。
評估
研究方向
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.
由索引模型根據 Issue 內容生成。
描述
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.
- 主要語言
- Python
- 星號
- 409
- 分支
- 73
- PR 合併指標
- 30 天內沒有已合併 PR
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
python-openapi/openapi-spec-validator 的其他 Issue
-
難度 4/5 3-5 天 新手友好度 55/100
-
難度 3/5 1-2 天 新手友好度 65/100
-
難度 3/5 1-2 天 新手友好度 55/100
-
難度 3/5 1-2 天 新手友好度 30/100
-
難度 4/5 3-5 天 新手友好度 42/100
python-openapi/openapi-spec-validator#400 · 1 則留言 ·
查看 python-openapi/openapi-spec-validator 的全部 Issue
相似的 Issue
-
agent-ready documentation needs-triage
難度 1/5 1-3 小時 新手友好度 88/100
-
documentation
難度 1/5 1 小時以內 新手友好度 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" 未關閉
難度 1/5 1 小時以內 新手友好度 92/100
-
instance instance add
難度 1/5 1 小時以內 新手友好度 72/100
searxng/searx-instances#939 · 1 則留言 ·
-
area-deployment area-integrations triage:bot-seen
難度 2/5 半天 新手友好度 86/100