Beispiel #1
0
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,
    )
Beispiel #2
0
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,
    )
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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,
    )
Beispiel #6
0
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)
Beispiel #7
0
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)