예제 #1
0
def test_enum_error(monkeypatch):
    logger = MagicMock()
    monkeypatch.setattr('connexion.decorators.validation.logger', logger)
    value = 'INVALID'
    param = {'schema': {'type': 'string', 'enum': ['valid']},
             'name': 'test_path_param'}
    result = ParameterValidator.validate_parameter('path', value, param)
    assert result.startswith("'INVALID' is not one of ['valid']")
예제 #2
0
def test_invalid_type_value_error(monkeypatch):
    logger = MagicMock()
    monkeypatch.setattr('connexion.decorators.validation.logger', logger)
    value = {'test': 1, 'second': 2}
    result = ParameterValidator.validate_parameter('formdata', value, {
        'type': 'boolean',
        'name': 'foo'
    })
    assert result == "Wrong type, expected 'boolean' for formdata parameter 'foo'"
예제 #3
0
def test_get_nullable_parameter():
    param = {
        'type': 'number',
        'required': True,
        'name': 'foo',
        'x-nullable': True
    }
    result = ParameterValidator.validate_parameter('formdata', 'None', param)
    assert result is None
예제 #4
0
def test_get_nullable_parameter():
    param = {
        'schema': {
            'type': 'number',
            'nullable': True
        },
        'required': True,
        'name': 'foo'
    }
    result = ParameterValidator.validate_parameter('query', 'null', param)
    assert result is None
예제 #5
0
def test_invalid_type(monkeypatch):
    logger = MagicMock()
    monkeypatch.setattr('connexion.decorators.validation.logger', logger)
    result = ParameterValidator.validate_parameter('formdata', 20, {'type': 'string', 'name': 'foo'})
    expected_result = """20 is not of type 'string'

Failed validating 'type' in schema:
    {'name': 'foo', 'type': 'string'}

On instance:
    20"""
    assert result == expected_result
    logger.info.assert_called_once()
예제 #6
0
def test_get_explodable_object_parameter():
    param = {
        'schema': {
            'type': 'object',
            'additionalProperties': True
        },
        'required': True,
        'name': 'foo',
        'style': 'deepObject',
        'explode': True
    }
    result = ParameterValidator.validate_parameter('query', {'bar': 1}, param)
    assert result is None
예제 #7
0
def test_enum_error(monkeypatch):
    logger = MagicMock()
    monkeypatch.setattr('connexion.decorators.validation.logger', logger)
    value = 'INVALID'
    param = {
        'schema': {
            'type': 'string',
            'enum': ['valid']
        },
        'name': 'test_path_param'
    }
    result = ParameterValidator.validate_parameter('path', value, param)
    assert result.startswith("'INVALID' is not one of ['valid']")
예제 #8
0
def test_get_valid_parameter_with_enum_array_header():
    value = 'VALUE1,VALUE2'
    param = {
        'schema': {
            'type': 'array',
            'items': {
                'type': 'string',
                'enum': ['VALUE1', 'VALUE2']
            }
        },
        'name': 'test_header_param'
    }
    result = ParameterValidator.validate_parameter('header', value, param)
    assert result is None
예제 #9
0
def test_invalid_type(monkeypatch):
    logger = MagicMock()
    monkeypatch.setattr('connexion.decorators.validation.logger', logger)
    result = ParameterValidator.validate_parameter('formdata', 20, {
        'type': 'string',
        'name': 'foo'
    })
    expected_result = """20 is not of type 'string'

Failed validating 'type' in schema:
    {'name': 'foo', 'type': 'string'}

On instance:
    20"""
    assert result == expected_result
    logger.info.assert_called_once()
예제 #10
0
def test_get_valid_parameter_with_required_attr():
    param = {'type': 'number', 'required': True, 'name': 'foobar'}
    result = ParameterValidator.validate_parameter('formdata', 20, param)
    assert result is None
예제 #11
0
def test_invalid_type_value_error(monkeypatch):
    logger = MagicMock()
    monkeypatch.setattr('connexion.decorators.validation.logger', logger)
    value = {'test': 1, 'second': 2}
    result = ParameterValidator.validate_parameter('formdata', value, {'type': 'boolean', 'name': 'foo'})
    assert result == "Wrong type, expected 'boolean' for formdata parameter 'foo'"
예제 #12
0
def test_get_valid_parameter():
    result = ParameterValidator.validate_parameter('formdata', 20, {'type': 'number', 'name': 'foobar'})
    assert result is None
예제 #13
0
def test_get_nullable_parameter():
    param = {'schema': {'type': 'number', 'nullable': True},
             'required': True, 'name': 'foo'}
    result = ParameterValidator.validate_parameter('query', 'null', param)
    assert result is None
예제 #14
0
def test_get_valid_path_parameter():
    param = {'required': True, 'schema': {'type': 'number'}, 'name': 'foobar'}
    result = ParameterValidator.validate_parameter('path', 20, param)
    assert result is None
예제 #15
0
def test_get_valid_parameter_with_required_attr():
    param = {'type': 'number', 'required': True, 'name': 'foobar'}
    result = ParameterValidator.validate_parameter('formdata', 20, param)
    assert result is None
예제 #16
0
def test_get_missing_required_parameter():
    param = {'type': 'number', 'required': True, 'name': 'foo'}
    result = ParameterValidator.validate_parameter('formdata', None, param)
    assert result == "Missing formdata parameter 'foo'"
예제 #17
0
 def validate_parameter(*args, **kwargs):
     result = ParameterValidator.validate_parameter(*args, **kwargs)
     if result is not None:
         raise DSSBindingException(result)
     return result
예제 #18
0
def test_get_missing_required_parameter():
    param = {'type': 'number', 'required': True, 'name': 'foo'}
    result = ParameterValidator.validate_parameter('formdata', None, param)
    assert result == "Missing formdata parameter 'foo'"
예제 #19
0
def test_get_nullable_parameter():
    param = {'type': 'number', 'required': True, 'name': 'foo', 'x-nullable': True}
    result = ParameterValidator.validate_parameter('formdata', 'None', param)
    assert result is None
예제 #20
0
def test_get_valid_parameter():
    result = ParameterValidator.validate_parameter('formdata', 20, {
        'type': 'number',
        'name': 'foobar'
    })
    assert result is None
예제 #21
0
def test_get_valid_path_parameter():
    param = {'required': True, 'schema': {'type': 'number'}, 'name': 'foobar'}
    result = ParameterValidator.validate_parameter('path', 20, param)
    assert result is None