Пример #1
0
def _validate_flask_request(request, swagger_spec_path, operation_id):
    """
    Args:
        request (flask.Request): Flask request to validate.
        swagger_spec_path (string): The path to the Swagger specification file.
        operation_id (string): The name of the operation the request should be
            validated against.


    Returns:
        None

    Raises:
        TODO
    """
    validator = SwaggerValidator(swagger_spec_path)
    validator.validate_request(request, operation_id)
def test_merge_api():
    validator = SwaggerValidator(copy.deepcopy(SPECIFICATION))
    request = {'method': 'GET', 'path': '/merge/test/'}

    assert validator.validate_request(request) == [{'code': 'operation_missing', 'path': ['GET', '/merge/test/']}]
    validator.merge({
        "apis": [
            {
                "operations": [
                    {
                        "method": "GET",
                        "nickname": "merge_test_get",
                    },
                ],
                "path": "/merge/test/"
            },
        ],
    })
    assert validator.validate_request(request) == []
Пример #3
0
def _validate_flask_response(response, swagger_spec_path, operation_id):
    """
    Validate a Flask Response against a particular Swagger spec operation.

    Args:
        response (flask.Response): The Flask response to validate.
        swagger_spec_path (string): The path to the Swagger specification file.
        operation_id (string): The name of the operation the response should be
            validated against.

    Returns:
        None

    Raises:
        swagger_spec_validator.common.SwaggerValidationError: The Swagger spec did not validate.
            Note: Ensure you are wrapping response codes in quotes (ex: "200")
        jsonschema.exceptions.ValidationError: The response did not meet the specification.
    """
    validator = SwaggerValidator(swagger_spec_path)
    status_code = response.status_code
    body_text = response.data
    content_type = response.content_type
    validator.validate_response(operation_id, status_code, body_text, content_type)
def test_merge_api():
    validator = SwaggerValidator(copy.deepcopy(SPECIFICATION))
    request = {'method': 'GET', 'path': '/merge/test/'}

    assert validator.validate_request(request) == [{
        'code':
        'operation_missing',
        'path': ['GET', '/merge/test/']
    }]
    validator.merge({
        "apis": [
            {
                "operations": [
                    {
                        "method": "GET",
                        "nickname": "merge_test_get",
                    },
                ],
                "path": "/merge/test/"
            },
        ],
    })
    assert validator.validate_request(request) == []
def test_validate_response(response_, errors):
    validator = SwaggerValidator(
        SPECIFICATION,
        ignore_endpoints=[r'/ignore/.*', r'/note/\d+/ignore'],
    )
    assert validator.validate_response(response_) == errors
def test_validate_type_or_model(spec, value, errors):
    validator = SwaggerValidator(SPECIFICATION)
    assert format_errors(validator.validate_type_or_model(spec, value)) == errors
def test_validate_missing_model():
    doc = {'name': 'Tom', 'age': 30}
    errors = [{'code': 'model_missing', 'path': ['User']}]
    validator = SwaggerValidator(SPECIFICATION)
    assert format_errors(validator.validate_model('User', doc)) == errors
def test_validate_model(doc, errors):
    validator = SwaggerValidator(SPECIFICATION)
    assert format_errors(validator.validate_model('Person', doc)) == errors
def test_merge(spec, errors):
    validator = SwaggerValidator(copy.deepcopy(SPECIFICATION))
    assert validator.merge(spec) == errors
def test_validate_response(response_, errors):
    validator = SwaggerValidator(
        SPECIFICATION,
        ignore_endpoints=[r'/ignore/.*', r'/note/\d+/ignore'],
    )
    assert validator.validate_response(response_) == errors
def test_validate_type_or_model(spec, value, errors):
    validator = SwaggerValidator(SPECIFICATION)
    assert format_errors(validator.validate_type_or_model(spec,
                                                          value)) == errors
def test_validate_missing_model():
    doc = {'name': 'Tom', 'age': 30}
    errors = [{'code': 'model_missing', 'path': ['User']}]
    validator = SwaggerValidator(SPECIFICATION)
    assert format_errors(validator.validate_model('User', doc)) == errors
def test_validate_model(doc, errors):
    validator = SwaggerValidator(SPECIFICATION)
    assert format_errors(validator.validate_model('Person', doc)) == errors
def test_merge(spec, errors):
    validator = SwaggerValidator(copy.deepcopy(SPECIFICATION))
    assert validator.merge(spec) == errors