Commit graph

132 commits

Author SHA1 Message Date
p1c2u
3f7442624a Move unmarshal out of schema models 2020-02-02 22:56:25 +00:00
Artur Maciag
376dc205ae unmarshalling formatters 2020-02-01 23:50:56 +00:00
Artur Maciag
6b6abc0b01 Move schema validator to separate subpackage 2020-01-28 09:51:09 +00:00
Artur Maciag
5059f05396 Flask OpenAPI request parameters 2020-01-27 11:23:20 +00:00
p1c2u
b5aabf213c FlaskOpenAPIView handler change 2020-01-26 23:29:19 +00:00
Artur Maciag
0d0fa524cf Flask OpenAPI view 2020-01-24 21:01:21 +00:00
p1c2u
b026fb2151 Move Unmarshallers to separate subpackage 2020-01-23 18:30:31 +00:00
Artur Maciag
da3b6ee669 Shortcuts cleanup 2020-01-17 14:52:26 +00:00
Gouji Ochiai
e88bef490d webob's multidict protocol does not support getlist. 2019-11-19 13:06:50 +09:00
p1c2u
44de9c4322 Validation schema errors iter fix 2019-10-22 22:01:17 +01:00
p1c2u
c4d4ed8515 Server missing fields 2019-10-22 18:21:40 +01:00
p1c2u
d7840d0d61 Operations more fields 2019-10-22 17:20:52 +01:00
p1c2u
cfdf3410d2 Narrow validation exceptions 2019-10-20 15:06:13 +01:00
p1c2u
2bca2526f2 Schema validation errors list 2019-10-20 15:06:11 +01:00
p1c2u
88459829ad Schema validate exceptions refactor 2019-10-20 13:25:21 +01:00
p1c2u
939cec94e7 Schema unmarshal exceptions refactor 2019-10-20 13:00:14 +01:00
p1c2u
eb2530590d Django 2.2 for python3 setup 2019-10-20 03:06:56 +01:00
p1c2u
2000b1215f Django OpenAPI request/response factories 2019-10-20 00:58:28 +01:00
p1c2u
0bbf787423 Flask factories; Get rid of wrappers 2019-10-19 13:35:48 +01:00
p1c2u
cffc47c60a OpenAPI request and response datatypes 2019-10-19 13:01:56 +01:00
p1c2u
8a614de0bb Restructure flask and mock 2019-10-19 12:01:57 +01:00
p1c2u
48ee8f9f87 Validation result datatypes and tests restructure 2019-10-19 10:55:32 +01:00
p1c2u
fc60083e78 Get rid of schema validation in unmarshal 2019-09-13 01:55:22 +01:00
p1c2u
a2fc5284c6 Get rid of object validator 2019-09-12 19:56:39 +01:00
p1c2u
b2410e2f3a OAS 3.0 validator 2019-09-12 19:46:11 +01:00
p1c2u
c4c51637d2 Rename schema validate to obj_validate 2019-09-12 19:46:11 +01:00
Gerhard Weis
3d23f17c1d add test to check parameter uniqueness is handled correctly in validator 2019-06-20 06:38:00 +10:00
Gerhard Weis
d490d5774b fix path parameter validation when overridden on operation 2019-06-20 06:23:54 +10:00
Gerhard Weis
a8248a53da parameters are unique as long as name and location are unique. 2019-06-20 05:09:33 +10:00
Gerhard Weis
a1dfaf6adb make flake8 happy 2019-06-19 08:59:50 +10:00
Gerhard Weis
a8d7d9b9dc very simple and hacky path item parameter override test 2019-06-19 08:49:03 +10:00
Artur Maciag
e8d98dfdf7 TestPathItemParamsValidator linting fix 2019-06-18 16:35:45 +01:00
Artur Maciag
27ebae3182 Parameters on path item object support 2019-06-18 16:31:42 +01:00
Gerhard Weis
40944119d1 add failing test for parameters on path item object 2019-06-18 15:42:19 +01:00
Artur Maciag
c9b2d8c4f8 attr errors hashable fix 2019-06-18 14:54:02 +01:00
A
9376b2e2da
Merge pull request #141 from bjmc/flask_params
Modify FlaskOpenAPIRequest to accomodate path variables
2019-06-17 15:38:45 +01:00
A
0df1d051b4
Merge pull request #133 from crunchr/support-any-type-with-one-of-rb1
Add support for one-of with any type
2019-06-17 13:28:41 +01:00
Brendan McCollam
3093364304 PEP8 2019-06-12 12:16:55 +01:00
Brendan McCollam
2908015745 Adds test for request validator w/Flask wrapper
formatting
2019-06-12 12:16:55 +01:00
Brendan McCollam
934550324e Fix pre-existing test 2019-06-12 12:16:55 +01:00
Brendan McCollam
2ec02e473e Adds failing test
Adds flask_wrapper.yaml spec
2019-06-12 11:37:10 +01:00
Daniel Bradburn
a1596ea8c3 remove unused import 2019-06-08 11:21:59 +02:00
A
98f72bff1b
Merge pull request #134 from dz0ny/fix/number_parsing
Fix number validator
2019-05-21 13:19:07 +01:00
Artur Maciag
63f3ffb09f Number format added 2019-05-21 12:54:13 +01:00
A
f0cfa2d0e0
Merge pull request #131 from MCapitani/links
add support for "links" in Response
2019-05-21 12:26:32 +01:00
A
f5d26112b2
Merge pull request #130 from MCapitani/add-path-param
add support for path-level parameters
2019-05-17 10:30:51 +01:00
Janez Troha
3339e1311a Fix number validator
The `integer_types` is always a tuple. When checking
if an instance is a number it fails because it's doing a comparison against a tuple
instead of real type.

➜ python -c "from six import integer_types;import sys;print(integer_types);print(sys.version)"
(<type 'int'>, <type 'long'>)
2.7.16 (default, Apr  6 2019, 01:42:57)
[GCC 8.3.0]

➜ python3 -c "from six import integer_types;import sys;print(integer_types);print(sys.version)"
(<class 'int'>,)
3.7.3 (default, Apr  3 2019, 05:39:12)
[GCC 8.3.0]

And spec defines a number as both int and float https://swagger.io/docs/specification/data-models/data-types/#numbers so both validators need to support both types.
2019-05-15 19:00:38 +02:00
Daniel Bradburn
7d903a8907 Add support for one-of with any type 2019-05-02 15:50:38 +02:00
Nejc Zupan
13e65a2d91 Add missing STRING_FORMAT_CALLABLE_GETTER: SchemaFormat.PASSWORD
`password` is a valid OpenAPIv3 string format, that is used as a UI hint
for frontend clients to mask the input field.

It was already present in the `SchemaFormat` enum, but it was not
handled in `_unmarshal_string` that uses `STRING_FORMAT_CALLABLE_GETTER`
to decide how to unmarshal a string, which would result in an error like
this one:

```
Traceback (most recent call last):
  [... snip ...]
  File ".venv/lib/python3.7/site-packages/openapi_core/validation/request/validators.py", line 37, in validate
    body, body_errors = self._get_body(request, operation)
  File ".venv/lib/python3.7/site-packages/openapi_core/validation/request/validators.py", line 82, in _get_body
    body = media_type.unmarshal(raw_body, self.custom_formatters)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/media_types/models.py", line 45, in unmarshal
    unmarshalled = self.schema.unmarshal(deserialized, custom_formatters=custom_formatters)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 189, in unmarshal
    casted = self.cast(value, custom_formatters=custom_formatters, strict=strict)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 179, in cast
    return cast_callable(value)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 295, in _unmarshal_object
    value, custom_formatters=custom_formatters)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 335, in _unmarshal_properties
    prop_value, custom_formatters=custom_formatters)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 189, in unmarshal
    casted = self.cast(value, custom_formatters=custom_formatters, strict=strict)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 179, in cast
    return cast_callable(value)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 295, in _unmarshal_object
    value, custom_formatters=custom_formatters)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 335, in _unmarshal_properties
    prop_value, custom_formatters=custom_formatters)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 189, in unmarshal
    casted = self.cast(value, custom_formatters=custom_formatters, strict=strict)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 179, in cast
    return cast_callable(value)
  File ".venv/lib/python3.7/site-packages/openapi_core/schema/schemas/models.py", line 215, in _unmarshal_string
    formatstring = self.STRING_FORMAT_CALLABLE_GETTER[schema_format]
KeyError: <SchemaFormat.PASSWORD: 'password'>
```
2019-04-26 20:22:54 +01:00
Artur Maciag
4d99cbe7e1 Move additional props check to separate method 2019-03-26 13:27:44 +00:00