def test_swagger_field_cannot_be_null(): raw_schema = RawSchemaFactory(swagger=None) assert raw_schema['swagger'] is None with pytest.raises(ValidationError) as err: swagger_schema_validator(raw_schema) assert_path_in_errors( 'swagger', err.value.detail, )
def test_invalid_values_against_single_schema(items): schema = { 'type': ARRAY, 'items': { 'type': INTEGER, 'minimum': 0, 'maximum': 10, } } validator = generate_validator_from_schema(schema) with pytest.raises(ValidationError) as err: validator(items) assert_path_in_errors('items', err.value.detail)
def test_invalid_values_against_list_of_schemas(): schema = { 'type': ARRAY, 'items': [ { 'type': INTEGER, 'minimum': 0, 'maximum': 10 }, { 'type': STRING, 'minLength': 3, 'maxLength': 5 }, { 'type': INTEGER, 'minimum': 0, 'maximum': 10 }, { 'type': STRING, 'minLength': 3, 'maxLength': 5 }, { 'type': INTEGER, 'minimum': 0, 'maximum': 10 }, ], } validator = generate_validator_from_schema(schema) with pytest.raises(ValidationError) as err: validator([11, 'abc-abc', -5, 'ab', 'wrong-type'], ) assert_path_in_errors('items.0.maximum', err.value.detail) assert_path_in_errors('items.1.maxLength', err.value.detail) assert_path_in_errors('items.2.minimum', err.value.detail) assert_path_in_errors('items.3.minLength', err.value.detail) assert_path_in_errors('items.4.type', err.value.detail)
def test_maximum_length_validation_with_too_long_values(max_length, value): parameters = parameters_validator([ { 'name': 'id', 'in': PATH, 'description':'id', 'type': STRING, 'required': True, 'maxLength': max_length, }, ]) parameter_values = { 'id': value, } with pytest.raises(ValidationError) as err: validate_parameters(parameter_values, parameters, {}) assert_path_in_errors( 'id.maxLength', err.value.detail, )
def test_invalid_values_against_schema_reference(items): schema = { 'type': ARRAY, 'items': { '$ref': '#/definitions/SomeReference', }, } context = { 'definitions': { 'SomeReference': { 'type': INTEGER, 'minimum': 0, 'maximum': 10, }, }, } validator = generate_validator_from_schema(schema, context=context) with pytest.raises(ValidationError) as err: validator(items, context=context) assert_path_in_errors('items', err.value.detail)
def test_invalid_values_against_list_of_schemas(): schema = { 'type': ARRAY, 'items': [ {'type': INTEGER, 'minimum': 0, 'maximum': 10}, {'type': STRING, 'minLength': 3, 'maxLength': 5}, {'type': INTEGER, 'minimum': 0, 'maximum': 10}, {'type': STRING, 'minLength': 3, 'maxLength': 5}, {'type': INTEGER, 'minimum': 0, 'maximum': 10}, ], } validator = generate_validator_from_schema(schema) with pytest.raises(ValidationError) as err: validator( [11, 'abc-abc', -5, 'ab', 'wrong-type'], ) assert_path_in_errors('items.0.maximum', err.value.detail) assert_path_in_errors('items.1.maxLength', err.value.detail) assert_path_in_errors('items.2.minimum', err.value.detail) assert_path_in_errors('items.3.minLength', err.value.detail) assert_path_in_errors('items.4.type', err.value.detail)