コード例 #1
0
def test_nullable_fail(minimal_swagger_spec, string_spec):
    """Test scenarios in which validation should fail: (2)"""

    string_spec['x-nullable'] = False
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, string_spec, None)
    assert excinfo.value.message == "None is not of type 'string'"
コード例 #2
0
def test_nullable_fail(minimal_swagger_spec, string_spec):
    """Test scenarios in which validation should fail: (2)"""

    string_spec['x-nullable'] = False
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, string_spec, None)
    assert excinfo.value.message == "None is not of type 'string'"
コード例 #3
0
def test_boolean_falure():
    boolean_spec = {
        'type': 'boolean'
    }
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(boolean_spec, "foo")
    assert "is not of type 'boolean'" in str(excinfo.value)
コード例 #4
0
def test_user_defined_format_failure(minimal_swagger_spec, email_address_spec):
    request_body = 'i_am_not_a_valid_email_address'
    minimal_swagger_spec.register_format(email_address_format)
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, email_address_spec,
                           request_body)
    assert "'i_am_not_a_valid_email_address' is not a 'email_address'" in \
        str(excinfo.value)
コード例 #5
0
def test_user_defined_format_failure(minimal_swagger_spec, email_address_spec):
    request_body = 'i_am_not_a_valid_email_address'
    minimal_swagger_spec.register_format(email_address_format)
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, email_address_spec,
                           request_body)
    assert "'i_am_not_a_valid_email_address' is not a 'email_address'" in \
        str(excinfo.value)
コード例 #6
0
def test_builtin_format_still_works_when_user_defined_format_used(
        minimal_swagger_spec):
    ipaddress_spec = {
        'type': 'string',
        'format': 'ipv4',
    }
    request_body = 'not_an_ip_address'
    minimal_swagger_spec.register_format(email_address_format)
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, ipaddress_spec, request_body)
    assert "'not_an_ip_address' is not a 'ipv4'" in str(excinfo.value)
コード例 #7
0
def test_builtin_format_still_works_when_user_defined_format_used(
        minimal_swagger_spec):
    ipaddress_spec = {
        'type': 'string',
        'format': 'ipv4',
    }
    request_body = 'not_an_ip_address'
    minimal_swagger_spec.register_format(email_address_format)
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, ipaddress_spec, request_body)
    assert "'not_an_ip_address' is not a 'ipv4'" in str(excinfo.value)
コード例 #8
0
def test_integer_exclusiveMaximum_success(minimal_swagger_spec, integer_spec):
    integer_spec['maximum'] = 10
    integer_spec['exclusiveMaximum'] = True
    validate_primitive(minimal_swagger_spec, integer_spec, 9)
コード例 #9
0
def test_integer_maximum_success(minimal_swagger_spec, integer_spec):
    integer_spec['maximum'] = 10
    validate_primitive(minimal_swagger_spec, integer_spec, 5)
コード例 #10
0
def test_boolean_success(minimal_swagger_spec, boolean_spec):
    validate_primitive(minimal_swagger_spec, boolean_spec, True)
    validate_primitive(minimal_swagger_spec, boolean_spec, False)
コード例 #11
0
def test_integer_failure(integer_spec):
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(integer_spec, 'i am a string')
    assert "is not of type 'integer'" in str(excinfo.value)
コード例 #12
0
def test_integer_minimum_failure(integer_spec):
    integer_spec['minimum'] = 10
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(integer_spec, 9)
    assert "less than the minimum" in str(excinfo.value)
コード例 #13
0
def test_string_enum_failure(minimal_swagger_spec, string_spec):
    string_spec['enum'] = ['inky', 'dinky', 'doo']
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, string_spec, 'abc')
    assert "is not one of" in str(excinfo.value)
コード例 #14
0
def test_string_enum_success(string_spec):
    string_spec['enum'] = ['inky', 'dinky', 'doo']
    validate_primitive(string_spec, 'dinky')
コード例 #15
0
def test_string_pattern_failure(minimal_swagger_spec, string_spec):
    string_spec['pattern'] = 'foo'
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, string_spec, 'abcdef')
    assert "does not match" in str(excinfo.value)
コード例 #16
0
def test_string_enum_success(minimal_swagger_spec, string_spec):
    string_spec['enum'] = ['inky', 'dinky', 'doo']
    validate_primitive(minimal_swagger_spec, string_spec, 'dinky')
コード例 #17
0
def test_string_pattern_success(minimal_swagger_spec, string_spec):
    string_spec['pattern'] = 'foo'
    validate_primitive(minimal_swagger_spec, string_spec, 'feefiefoofum')
コード例 #18
0
def test_string_maxLength_failure(minimal_swagger_spec, string_spec):
    string_spec['maxLength'] = 3
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, string_spec, 'abcdef')
    assert "is too long" in str(excinfo.value)
コード例 #19
0
def test_string_maxLength_success(minimal_swagger_spec, string_spec):
    string_spec['maxLength'] = 2
    validate_primitive(minimal_swagger_spec, string_spec, 'ab')
コード例 #20
0
def test_sensitive_string(minimal_swagger_spec, sensitive_string_spec):
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, sensitive_string_spec, 999)
    assert "is not of type 'string'" in str(excinfo.value)
    assert '999' not in str(excinfo.value)
コード例 #21
0
def test_string_datetime_success(minimal_swagger_spec, string_spec):
    string_spec['format'] = 'date-time'
    datestring = "2016-06-07T20:59:00.480Z"
    validate_primitive(minimal_swagger_spec, string_spec, datestring)
コード例 #22
0
def test_number_success(minimal_swagger_spec, number_spec):
    validate_primitive(minimal_swagger_spec, number_spec, 3.14)
コード例 #23
0
def test_string_datetime_invalid_exception(minimal_swagger_spec, string_spec):
    string_spec['format'] = 'date-time'
    datestring = "nope nope nope"
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, string_spec, datestring)
    assert "is not a 'date-time'" in str(excinfo.value)
コード例 #24
0
def test_doesnt_blow_up_when_spec_has_a_require_key():
    string_spec = {
        'type': 'string',
        'require': True,
    }
    validate_primitive(string_spec, 'foo')
コード例 #25
0
def test_doesnt_blow_up_when_spec_has_a_required_key(minimal_swagger_spec):
    string_spec = {
        'type': 'string',
        'required': True,
    }
    validate_primitive(minimal_swagger_spec, string_spec, 'foo')
コード例 #26
0
def test_integer_multipleOf_failure(integer_spec):
    integer_spec['multipleOf'] = 2
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(integer_spec, 7)
    assert "not a multiple of" in str(excinfo.value)
コード例 #27
0
def test_user_defined_format_success(minimal_swagger_spec, email_address_spec):
    request_body = '*****@*****.**'
    minimal_swagger_spec.register_format(email_address_format)
    # No exception thrown == success
    validate_primitive(minimal_swagger_spec, email_address_spec, request_body)
コード例 #28
0
def test_integer_exclusiveMinimum_failure(integer_spec):
    integer_spec['minimum'] = 10
    integer_spec['exclusiveMinimum'] = True
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(integer_spec, 10)
    assert "less than or equal to the minimum" in str(excinfo.value)
コード例 #29
0
def test_number_multipleOf_success(minimal_swagger_spec, number_spec):
    number_spec['multipleOf'] = 2.3
    validate_primitive(minimal_swagger_spec, number_spec, 4.6)
コード例 #30
0
def test_number_failure(minimal_swagger_spec, number_spec):
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, number_spec, "foo")
    assert "is not of type 'number'" in str(excinfo.value)
コード例 #31
0
def test_number_success(number_spec):
    validate_primitive(number_spec, 3.14)
コード例 #32
0
def test_integer_multipleOf_success(minimal_swagger_spec, integer_spec):
    integer_spec['multipleOf'] = 2
    validate_primitive(minimal_swagger_spec, integer_spec, 10)
コード例 #33
0
def test_number_multipleOf_success(number_spec):
    number_spec['multipleOf'] = 2.3
    validate_primitive(number_spec, 4.6)
コード例 #34
0
def test_integer_maximum_failure(minimal_swagger_spec, integer_spec):
    integer_spec['maximum'] = 10
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, integer_spec, 11)
    assert "greater than the maximum" in str(excinfo.value)
コード例 #35
0
def test_string_success(string_spec):
    validate_primitive(string_spec, 'foo')
    validate_primitive(string_spec, u'bar')
コード例 #36
0
def test_nullable_pass(minimal_swagger_spec, string_spec, value, nullable):
    """Test scenarios in which validation should pass: (1), (3), (4)"""
    string_spec['x-nullable'] = nullable

    validate_primitive(minimal_swagger_spec, string_spec, value)
コード例 #37
0
def test_string_success(minimal_swagger_spec, string_spec):
    validate_primitive(minimal_swagger_spec, string_spec, 'foo')
    validate_primitive(minimal_swagger_spec, string_spec, u'bar')
コード例 #38
0
def test_number_failure(number_spec):
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(number_spec, "foo")
    assert "is not of type 'number'" in str(excinfo.value)
コード例 #39
0
def test_string_maxLength_success(string_spec):
    string_spec['maxLength'] = 2
    validate_primitive(string_spec, 'ab')
コード例 #40
0
def test_number_multipleOf_failure(number_spec):
    number_spec['multipleOf'] = 2.3
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(number_spec, 9.1)
    assert "not a multiple of" in str(excinfo.value)
コード例 #41
0
def test_string_pattern_success(string_spec):
    string_spec['pattern'] = 'foo'
    validate_primitive(string_spec, 'feefiefoofum')
コード例 #42
0
def test_string_failure(string_spec):
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(string_spec, 999)
    assert "is not of type 'string'" in str(excinfo.value)
コード例 #43
0
def test_boolean_falure(minimal_swagger_spec, boolean_spec):
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, boolean_spec, "foo")
    assert "is not of type 'boolean'" in str(excinfo.value)
コード例 #44
0
def test_string_maxLength_failure(string_spec):
    string_spec['maxLength'] = 3
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(string_spec, 'abcdef')
    assert "is too long" in str(excinfo.value)
コード例 #45
0
def test_integer_success(minimal_swagger_spec, integer_spec):
    validate_primitive(minimal_swagger_spec, integer_spec, 10)
    validate_primitive(minimal_swagger_spec, integer_spec, -10)
コード例 #46
0
def test_string_pattern_failure(string_spec):
    string_spec['pattern'] = 'foo'
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(string_spec, 'abcdef')
    assert "does not match" in str(excinfo.value)
コード例 #47
0
def test_integer_failure(minimal_swagger_spec, integer_spec):
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, integer_spec, 'i am a string')
    assert "is not of type 'integer'" in str(excinfo.value)
コード例 #48
0
def test_string_enum_failure(string_spec):
    string_spec['enum'] = ['inky', 'dinky', 'doo']
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(string_spec, 'abc')
    assert "is not one of" in str(excinfo.value)
コード例 #49
0
def test_integer_multipleOf_success(minimal_swagger_spec, integer_spec):
    integer_spec['multipleOf'] = 2
    validate_primitive(minimal_swagger_spec, integer_spec, 10)
コード例 #50
0
def test_integer_success(integer_spec):
    validate_primitive(integer_spec, 10)
    validate_primitive(integer_spec, -10)
コード例 #51
0
def test_integer_multipleOf_failure(minimal_swagger_spec, integer_spec):
    integer_spec['multipleOf'] = 2
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, integer_spec, 7)
    assert "not a multiple of" in str(excinfo.value)
コード例 #52
0
def test_integer_multipleOf_success(integer_spec):
    integer_spec['multipleOf'] = 2
    validate_primitive(integer_spec, 10)
コード例 #53
0
def test_integer_exclusiveMaximum_failure(minimal_swagger_spec, integer_spec):
    integer_spec['maximum'] = 10
    integer_spec['exclusiveMaximum'] = True
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, integer_spec, 10)
    assert "greater than or equal to the maximum" in str(excinfo.value)
コード例 #54
0
def test_integer_minimum_success(integer_spec):
    integer_spec['minimum'] = 10
    validate_primitive(integer_spec, 15)
コード例 #55
0
def test_integer_minimum_success(minimal_swagger_spec, integer_spec):
    integer_spec['minimum'] = 10
    validate_primitive(minimal_swagger_spec, integer_spec, 15)
コード例 #56
0
def test_integer_exclusiveMinimum_success(integer_spec):
    integer_spec['minimum'] = 10
    integer_spec['exclusiveMinimum'] = True
    validate_primitive(integer_spec, 11)
コード例 #57
0
def test_integer_minimum_failure(minimal_swagger_spec, integer_spec):
    integer_spec['minimum'] = 10
    with pytest.raises(ValidationError) as excinfo:
        validate_primitive(minimal_swagger_spec, integer_spec, 9)
    assert "less than the minimum" in str(excinfo.value)
コード例 #58
0
def test_boolean_success():
    boolean_spec = {
        'type': 'boolean'
    }
    validate_primitive(boolean_spec, True)
    validate_primitive(boolean_spec, False)
コード例 #59
0
def test_integer_exclusiveMinimum_success(minimal_swagger_spec, integer_spec):
    integer_spec['minimum'] = 10
    integer_spec['exclusiveMinimum'] = True
    validate_primitive(minimal_swagger_spec, integer_spec, 11)