Skip to content

Commit

Permalink
Merge branch 'master' into additional-properties-bool
Browse files Browse the repository at this point in the history
  • Loading branch information
ngaya-ll committed Jun 10, 2020
2 parents f88e150 + 7234ed9 commit 18a9c9d
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 11 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
Changelog
=========
2.7.1 (2020-06-09)
------------------
- Fix: `additionalProperties` can be a boolean value - PR #138

2.7.0 (2020-06-05)
------------------
- Ensure correct validation into additionalProperties and items specifications - PR #134. Thanks brycedrennan for your contribution.
Expand Down
2 changes: 1 addition & 1 deletion swagger_spec_validator/__about__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
__summary__ = "Validation of Swagger specifications"
__uri__ = "http://github.com/Yelp/swagger_spec_validator"

__version__ = "2.7.0"
__version__ = "2.7.1"

__author__ = "John Billings"
__email__ = "billings@yelp.com"
Expand Down
13 changes: 7 additions & 6 deletions swagger_spec_validator/validator20.py
Original file line number Diff line number Diff line change
Expand Up @@ -516,12 +516,13 @@ def validate_definition(definition, deref, def_name=None, visited_definitions_id
)

if 'additionalProperties' in definition:
validate_definition(
definition=definition.get('additionalProperties'),
deref=deref,
def_name='{}/{}'.format(def_name, 'additionalProperties'),
visited_definitions_ids=visited_definitions_ids,
)
if definition.get('additionalProperties') not in (True, False):
validate_definition(
definition=definition.get('additionalProperties'),
deref=deref,
def_name='{}/additionalProperties'.format(def_name),
visited_definitions_ids=visited_definitions_ids,
)

if 'discriminator' in definition:
required_props, not_required_props = get_collapsed_properties_type_mappings(definition, deref)
Expand Down
12 changes: 8 additions & 4 deletions tests/validator20/validate_spec_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -427,8 +427,6 @@ def test_highlight_inconsistent_schema_object_validation(minimal_swagger_dict, s

def test_additional_properties_validated(minimal_swagger_dict, default_checks_spec_dict):
invalid_spec = {'type': 'object', 'required': ['foo']}
minimal_swagger_dict['definitions']['injected_definition'] = invalid_spec

minimal_swagger_dict['definitions']['injected_definition'] = {
'type': 'object', 'additionalProperties': invalid_spec
}
Expand All @@ -437,10 +435,16 @@ def test_additional_properties_validated(minimal_swagger_dict, default_checks_sp
validate_spec(minimal_swagger_dict)


def test_additional_properties_bool(minimal_swagger_dict, default_checks_spec_dict):
minimal_swagger_dict['definitions']['injected_definition'] = {
'type': 'object', 'additionalProperties': False,
}

validate_spec(minimal_swagger_dict)


def test_array_items_validated(minimal_swagger_dict, default_checks_spec_dict):
invalid_spec = {'type': 'object', 'required': ['foo']}
minimal_swagger_dict['definitions']['injected_definition'] = invalid_spec

minimal_swagger_dict['definitions']['injected_definition'] = {
'type': 'array', 'items': invalid_spec
}
Expand Down

0 comments on commit 18a9c9d

Please sign in to comment.