Commit graph

83 commits

Author SHA1 Message Date
Artur Maciag
63f3ffb09f Number format added 2019-05-21 12:54:13 +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
Artur Maciag
4d99cbe7e1 Move additional props check to separate method 2019-03-26 13:27:44 +00:00
Diogo Baeder de Paula Pinto
14196b6ce1 Fix #124: Fixing test for Python 2. 2019-03-26 03:41:14 -03:00
Diogo Baeder de Paula Pinto
b029066add Fix #124: Checking "additionalProperties" in "oneOf" items.
This is important because it does the correct validation over items that
are restricted in "oneOf", so that it's possible to use schemas that are
superset of one another as items of "oneOf".
2019-03-26 02:30:07 -03:00
Artur Maciąg
f8e4e34e39 String byte format fix 2019-03-22 14:35:12 +00:00
A
c846b2e453
Merge pull request #112 from diogobaeder/master
Properly formatting UUID if value to be unmarshalled is already a UUID.
2019-03-22 14:30:02 +00:00
Artur Maciag
aa206d868e Test string format quirks rename fix 2019-03-22 14:14:42 +00:00
Artur Maciag
d0e163b5ba Test string format UUID non strict fix 2019-03-22 14:05:54 +00:00
Artur Maciag
9aa16dff0f Test object with invalid additional properties fix 2019-03-22 13:44:05 +00:00
A
beaa08a9c0
Merge branch 'master' into master 2019-03-22 13:29:04 +00:00
A
aa978cbe00
Merge pull request #121 from ondratu/master
Object additionalProperties support
2019-03-22 13:21:43 +00:00
Artur Maciąg
cd0ca5d26f Raw value type strict validation 2019-03-22 11:21:50 +00:00
Ondrej Tuma
83b9c37915 Object additionalProperties support
* Default is true like in specification
* When is set false, it works like in past
* Object with types works
2019-03-12 16:01:28 +01:00
Diogo Baeder de Paula Pinto
a08b62035e Properly formatting UUID if value to be unmarshalled is already a UUID.
Before this change, if a UUID instance got received as value in the
Schema, it was breaking the unmarshal because UUID instances can't be
used as values to instantiate other UUIDs.
2019-02-28 18:25:22 -03:00
Artur Maciag
a533a080cc byte string format 2019-02-27 00:59:45 +00:00
Artur Maciag
48d1d1c8ae UUID string format tests 2019-02-26 14:22:28 +00:00
A
922fce4085
Merge pull request #75 from smarlowucf/flake8
Switch test requirement to pytest-flake8.
2019-02-24 03:29:44 +00:00
Artur Maciąg
dccb93bbfe test validaotr escape sequence fix 2019-02-24 02:28:45 +00:00
A
114ab79162
Merge branch 'master' into date-time-rfc3339 2018-09-13 20:42:32 +01:00
Domen Kožar
399602f013
sync master changes with exception refactoring 2018-09-13 11:59:44 +01:00
Domen Kožar
286e26c4ed
openapi 3.0 defines date-time format to be rfc3339 2018-09-12 15:16:46 +01:00
8db5c08ed1 Add support for additional validation properties
Add support for the following validation properties:
- multipleOf
- maximum
- exclusiveMaximum
- minimum
- exclusiveMinimum
- maxLength
- minLength
- pattern
- maxItems
- minItems
- uniqueItems
- maxProperties
- minProperties

Fixes #49
2018-09-09 00:30:38 -04:00
Marcin Molenda
e5cb549ea1 Expose tags in Operation object 2018-08-31 16:57:53 +02:00
p1c2u
0cbbdb0232 Unmarshal any schema type 2018-08-23 09:29:36 +01:00
p1c2u
05b8a30091 Any schema type 2018-08-22 14:27:32 +01:00
Artur Maciag
82f32be1e7 String validation 2018-08-22 13:49:24 +01:00
Artur Maciag
e395b50558 Collection validation 2018-08-22 10:29:39 +01:00
p1c2u
0915e94530 Object validation 2018-08-22 09:34:18 +01:00
Artur Maciag
f9a7472c92 Separate schema casting and validation 2018-08-17 18:35:21 +01:00
Artur Maciag
b75798aa62 Handle parameter deserialization errors 2018-08-17 13:25:31 +01:00
grktsh
d4f65a2ed2 Support unmarshaling string with format keyword 2018-08-17 13:25:12 +09:00
A
ac797bcf2a
Merge pull request #46 from HoverHell/paramlocations
Request headers and cookies parameter parsing fix
2018-08-13 20:21:46 +01:00
p1c2u
a9d858e940 Python2 compatibility module 2018-07-29 00:16:30 +01:00
p1c2u
3ab55e44bd Lazy schema references 2018-07-28 22:12:47 +01:00
Rafael Caricio
15fc9b009a Makes it possible to access API examples 2018-07-24 09:47:02 +02:00
Rafael Caricio
8ab0b6206e Populate operation_id attr 2018-07-23 18:02:51 +02:00
Artur Maciag
f8e977cc17 Parameters tests 2018-07-09 12:10:05 +01:00
Artur Maciag
54b8011603 Mimetype wildcards support 2018-05-30 15:01:01 +01:00
Artur Maciag
78f55ee80f Schema additional properties support 2018-05-30 11:20:35 +01:00
Artur Maciag
d87b60ade7 Schema format accepts any value 2018-05-30 09:41:34 +01:00
Artur Maciag
4c75f0f9b7 OneOf schema support 2018-05-25 16:50:09 +01:00
Artur Maciag
4e1a61aace Exceptions restructure 2018-05-25 11:30:50 +01:00
Artur Maciag
9b05d7b271 Wrapper restructure 2018-05-25 11:30:50 +01:00
Artur Maciag
bd1b0117a4 Schema objects tests moved 2018-05-25 11:30:50 +01:00
Artur Maciag
7111a91cef Validators restructure 2018-05-25 11:30:50 +01:00
Artur Maciag
734a4673f8 Schema objects restructure 2018-05-25 11:30:50 +01:00
p1c2u
0350562b54 Response JSON text as array fix 2018-04-23 20:40:54 +01:00
amcmanigal
56be4b10eb Fixing Subschema Required Properties Validation
Currently if valid swagger syntax is used for model composition an
error will be thrown due to the lack of a type property. This was
corrected by making object the default type.

schema_type = schema_deref.get('type', 'object')

I changed the swagger definition to test for this. Now PetCreate is a
composite of PetCreatePartOne and PetCreatePartTwo. However, this
caused `test_post_pets_empty_body` to fail, which turned out to be a
bug in the required properties.

In `_unmarshal_object` the `get_all_properties` method is called to get
all properties from the subschemas. However, this is not done for
required properties, meaning that only top level required properties
will be correctly validated. I have added a
`get_all_required_properties’ to fix this.

This caused `test_get_pets` to fail. In this case the bug allowed an
incorrect test case to be introduced. Pet requires `id`, but it also
requires name because it inherits from PetCreate. I have fixed this
test case by adding the missing required property.

After these changes `test_get_pet_not_found` failed due to a string
formatting error (double quotes vs single quotes). I fixed this by
switching to dictionary comparisons.
2018-04-04 10:15:45 -04:00
Artur Maciag
c733f9434a Allow undefined schema type 2018-04-04 11:26:21 +01:00