Fix issue #359: properly validate nullable polymorphic models #367
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The goal of this review is to address the validation issue that affects polymorphic models that are nullable (via
x-nullable
field).In order to better highlight the reported issue I've modified the
polymorphic_specs
to ensure that the operation (endpoint) used for testing does return an object that is not directly the polymorphic model.The issue was mostly caused by the fact that
discriminator
validation was not using the usual safe check around nullability and so in case ofinstance=None
enteringbravado_core.swagger20_validator.discriminator_validator
was not short circuiting and instead trying to extract the discriminator key from instance (which was none) and so leading toTypeError
being thrown.Adding the null-gate address the issue an so resolves #359