def type_validator(swagger_spec, validator, types, instance, schema): """Skip the `type` validator when a Swagger parameter value is None. Otherwise it will fail with a "None is not a valid type" failure instead of letting the downstream `required_validator` do its job. Also skip when a Swagger property value is None and the schema contains the extension field `x-nullable` set to True. In all other cases, delegate to the existing Draft4 `type` validator. :param swagger_spec: needed for access to deref() :type swagger_spec: :class:`bravado_core.spec.Spec` :param validator: Validator class used to validate the object :type validator: :class:`Swagger20Validator` or :class:`jsonschema.validators.Draft4Validator` :param types: validate types :type types: string or list :param instance: object instance value :param schema: swagger spec for the object :type schema: dict """ if (is_param_spec(swagger_spec, schema) or is_prop_nullable(swagger_spec, schema)) and instance is None: return for error in _validators.type_draft4(validator, types, instance, schema): yield error
def type_custom(validator, types, instance, schema, nullable_attr="x-nullable"): if schema.get(nullable_attr, False): if not isinstance(types, (list, tuple)): types = [types] types.append("null") yield from type_draft4(validator, types, instance, schema)
def type_validator(validator, types, instance, schema): """Skip the `type` validator when a Swagger parameter value is None. Otherwise it will fail with a "None is not a valid type" failure instead of letting the downstream `required_validator` do its job. In all other cases, delegate to the existing Draft4 `type` validator. :param validator: Validator class used to validate the object :type validator: :class:`Swagger20Validator` or :class:`jsonschema.validators.Draft4Validator` :param types: validate types :type types: string or list :param instance: object instance value :param schema: swagger spec for the object :type schema: dict """ if is_param_spec(schema) and instance is None: return return _validators.type_draft4(validator, types, instance, schema)