def test_invalid_inline_models_in_api_body_parameters_fails():
    apis = {
        '/endpoint': {
            'parameters': [
                {
                    'in': 'body',
                    'name': 'body',
                    'schema': {
                        'type': 'object',
                        'properties': {'prop': {'type': 'array'}},
                    },
                }
            ],
            'get': {
                'responses': {
                    '200': {
                        'description': 'desc',
                    },
                },
            },
        },
    }
    with pytest.raises(SwaggerValidationError) as excinfo:
        validate_apis(apis, lambda x: x)
    assert str(excinfo.value) == 'Definition of type array must define `items` property ' \
                                 '(definition #/paths//endpoint/parameters/0/schema/properties/prop).'
Exemplo n.º 2
0
def test_invalid_inline_models_in_api_body_parameters_fails():
    apis = {
        '/endpoint': {
            'parameters': [{
                'in': 'body',
                'name': 'body',
                'schema': {
                    'type': 'object',
                    'properties': {
                        'prop': {
                            'type': 'array'
                        }
                    },
                },
            }],
            'get': {
                'responses': {
                    '200': {
                        'description': 'desc',
                    },
                },
            },
        },
    }
    with pytest.raises(SwaggerValidationError) as excinfo:
        validate_apis(apis, lambda x: x)
    assert str(excinfo.value) == 'Definition of type array must define `items` property ' \
                                 '(definition #/paths//endpoint/parameters/0/schema/properties/prop).'
def test_duplicate_operationIds_fails(apis):
    with pytest.raises(SwaggerValidationError) as excinfo:
        validate_apis(apis, lambda x: x)

    swagger_validation_error = excinfo.value
    error_message = swagger_validation_error.args[0]

    assert error_message == "Duplicate operationId: duplicateOperationId"
Exemplo n.º 4
0
def test_duplicate_operationIds_fails(apis):
    with pytest.raises(SwaggerValidationError) as excinfo:
        validate_apis(apis, lambda x: x)

    swagger_validation_error = excinfo.value
    error_message = swagger_validation_error.args[0]

    assert error_message == "Duplicate operationId: duplicateOperationId"
def test_api_level_params_ok():
    # Parameters defined at the API level apply to all operations within that
    # API. Make sure we don't treat the API level parameters as an operation
    # since they are peers.
    apis = {
        "/tags/{tag-name}": {
            "parameters": [{"name": "tag-name", "in": "path", "type": "string", "required": True}],
            "get": {},
        }
    }
    # Success == no exception thrown
    validate_apis(apis)
def test_api_check_default_succeed(partial_parameter_spec):
    apis = {
        '/api': {
            'get': {
                'parameters': [
                    dict({'name': 'param', 'in': 'query'}, **partial_parameter_spec),
                ],
                'responses': RESPONSES,
            },
        },
    }

    # Success if no exception are raised
    validate_apis(apis, lambda x: x)
Exemplo n.º 7
0
def test_api_level_x_hyphen_ok():
    # Elements starting with "x-" should be ignored
    apis = {
        '/tags/{tag-name}': {
            'x-ignore-me': 'DO NOT LOOK AT ME!',
            'get': {
                'parameters': [{
                    'name': 'tag-name',
                    'in': 'path',
                    'type': 'string',
                }]
            }
        }
    }
    # Success == no exception thrown
    validate_apis(apis, lambda x: x)
Exemplo n.º 8
0
def test_api_check_default_succeed(partial_parameter_spec):
    apis = {
        '/api': {
            'get': {
                'parameters': [
                    dict({
                        'name': 'param',
                        'in': 'query'
                    }, **partial_parameter_spec),
                ],
            },
        },
    }

    # Success if no exception are raised
    validate_apis(apis, lambda x: x)
def test_api_check_default_fails(partial_parameter_spec, validator, instance):
    apis = {
        '/api': {
            'get': {
                'parameters': [
                    dict({'name': 'param', 'in': 'query'}, **partial_parameter_spec),
                ],
                'responses': RESPONSES,
            },
        },
    }

    with pytest.raises(SwaggerValidationError) as excinfo:
        validate_apis(apis, lambda x: x)

    validation_error = excinfo.value.args[1]
    assert validation_error.instance == instance
    assert validation_error.validator == validator
def test_api_level_x_hyphen_ok():
    # Elements starting with "x-" should be ignored
    apis = {
        '/tags/{tag-name}': {
            'x-ignore-me': 'DO NOT LOOK AT ME!',
            'get': {
                'parameters': [
                    {
                        'name': 'tag-name',
                        'in': 'path',
                        'type': 'string',
                    }
                ]
            }
        }
    }
    # Success == no exception thrown
    validate_apis(apis, lambda x: x)
Exemplo n.º 11
0
def test_api_level_params_ok():
    # Parameters defined at the API level apply to all operations within that
    # API. Make sure we don't treat the API level parameters as an operation
    # since they are peers.
    apis = {
        '/tags/{tag-name}': {
            'parameters': [
                {
                    'name': 'tag-name',
                    'in': 'path',
                    'type': 'string',
                },
            ],
            'get': {}
        }
    }
    # Success == no exception thrown
    validate_apis(apis, lambda x: x)
def test_api_level_params_ok():
    # Parameters defined at the API level apply to all operations within that
    # API. Make sure we don't treat the API level parameters as an operation
    # since they are peers.
    apis = {
        '/tags/{tag-name}': {
            'parameters': [
                {
                    'name': 'tag-name',
                    'in': 'path',
                    'type': 'string',
                },
            ],
            'get': {
            }
        }
    }
    # Success == no exception thrown
    validate_apis(apis, lambda x: x)
Exemplo n.º 13
0
def test_api_check_default_fails(partial_parameter_spec, validator, instance):
    apis = {
        '/api': {
            'get': {
                'parameters': [
                    dict({
                        'name': 'param',
                        'in': 'query'
                    }, **partial_parameter_spec),
                ],
            },
        },
    }

    with pytest.raises(SwaggerValidationError) as excinfo:
        validate_apis(apis, lambda x: x)

    validation_error = excinfo.value.args[1]
    assert validation_error.instance == instance
    assert validation_error.validator == validator
def test_duplicate_operationIds_succeeds_if_tags_differ(apis):
    validate_apis(apis, lambda x: x)
Exemplo n.º 15
0
def test_duplicate_operationIds_succeeds_if_tags_differ(apis):
    validate_apis(apis, lambda x: x)