示例#1
0
def test_pattern_with_invalid_regex():
    with pytest.raises(ValidationError) as err:
        schema_validator({'pattern': '(arrst'})

    assert_message_in_errors(
        MESSAGES['pattern']['invalid_regex'],
        err.value.detail,
        'pattern',
    )
示例#2
0
文件: test_title.py 项目: Arable/flex
def test_title_for_valid_title():
    try:
        schema_validator({'title': 'uuid'})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('title', errors)
示例#3
0
def test_properties_is_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('properties', errors)
示例#4
0
def test_required_with_invalid_sub_types():
    with pytest.raises(ValidationError) as err:
        schema_validator({'required': ['field-A', True, 'Field-B']})

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'required.type',
    )
示例#5
0
def test_properties_with_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({'properties': value})

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'properties.type',
    )
示例#6
0
def test_pattern_for_valid_regex():
    try:
        schema_validator({'pattern': '^test$'})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('pattern', errors)
示例#7
0
def test_unique_items_with_valid_value():
    try:
        schema_validator({'uniqueItems': True})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('uniqueItems', errors)
示例#8
0
def test_format_for_valid_unregistered_format():
    try:
        schema_validator({'format': 'not-a-registered-format'})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('format', errors)
示例#9
0
def test_type_with_invalid_single_type():
    with pytest.raises(ValidationError) as err:
        schema_validator({'type': 'not-a-valid-type'})

    assert_message_in_errors(
        MESSAGES['enum']['invalid'],
        err.value.detail,
        'type.enum',
    )
示例#10
0
def test_multiple_of_for_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({'multipleOf': value})

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'multipleOf.type',
    )
示例#11
0
def test_multiple_of_invalid_for_negative_numbers(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({'multipleOf': value})

    assert_message_in_errors(
        MESSAGES['minimum']['invalid'],
        err.value.detail,
        'multipleOf.minimum',
    )
示例#12
0
def test_multiple_for_valid_values(value):
    try:
        schema_validator({'multipleOf': value})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('multipleOf', errors)
示例#13
0
def test_multiple_of_is_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('multipleOf', errors)
示例#14
0
def test_schema_for_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator(value)

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'type',
    )
示例#15
0
def test_read_only_with_valid_value():
    try:
        schema_validator({'readOnly': True})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('readOnly', errors)
示例#16
0
def test_read_only_is_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('readOnly', errors)
示例#17
0
def test_title_for_valid_title():
    try:
        schema_validator({'title': 'uuid'})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('title', errors)
示例#18
0
def test_unique_items_are_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('uniqueItems', errors)
示例#19
0
文件: test_type.py 项目: Arable/flex
def test_type_with_invalid_single_type():
    with pytest.raises(ValidationError) as err:
        schema_validator({'type': 'not-a-valid-type'})

    assert_message_in_errors(
        MESSAGES['enum']['invalid'],
        err.value.detail,
        'type.enum',
    )
示例#20
0
def test_unique_items_with_valid_value():
    try:
        schema_validator({'uniqueItems': True})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('uniqueItems', errors)
示例#21
0
def test_required_with_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({'required': value})

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'required.type',
    )
示例#22
0
def test_unique_items_are_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('uniqueItems', errors)
示例#23
0
def test_required_for_valid_required():
    try:
        schema_validator({'required': ['field-A', 'field-B']})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('required', errors)
示例#24
0
def test_required_with_invalid_sub_types():
    with pytest.raises(ValidationError) as err:
        schema_validator({'required': ['field-A', True, 'Field-B']})

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'required.type',
    )
示例#25
0
def test_required_with_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({'required': value})

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'required.type',
    )
示例#26
0
def test_read_only_with_valid_value():
    try:
        schema_validator({'readOnly': True})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('readOnly', errors)
示例#27
0
def test_schema_for_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator(value)

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'type',
    )
示例#28
0
def test_pattern_for_valid_regex():
    try:
        schema_validator({'pattern': '^test$'})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('pattern', errors)
示例#29
0
def test_properties_is_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('properties', errors)
示例#30
0
def test_required_for_valid_required():
    try:
        schema_validator({'required': True})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('required', errors)
示例#31
0
def test_type_validation_for_multiple_of_for_valid_types(type_):
    try:
        schema_validator({"multipleOf": 5, "type": type_})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors("type", errors)
示例#32
0
def test_multiple_for_valid_values(value):
    try:
        schema_validator({"multipleOf": value})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors("multipleOf", errors)
示例#33
0
文件: test_enum.py 项目: Arable/flex
def test_enum_with_empty_array_is_invalid():
    try:
        schema_validator({'enum': [1, 2, 3]})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('enum', errors)
示例#34
0
def test_multiple_of_is_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors("multipleOf", errors)
示例#35
0
def test_read_only_is_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('readOnly', errors)
示例#36
0
文件: test_enum.py 项目: Arable/flex
def test_enum_with_empty_array_is_invalid():
    with pytest.raises(ValidationError) as err:
        schema_validator({'enum': []})

    assert_message_in_errors(
        MESSAGES['min_items']['invalid'],
        err.value.detail,
        'enum.minItems',
    )
示例#37
0
def test_format_for_valid_unregistered_format():
    try:
        schema_validator({'format': 'not-a-registered-format'})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('format', errors)
示例#38
0
def test_min_length_for_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({'minLength': value})

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'minLength.type',
    )
示例#39
0
def test_properties_with_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({'properties': value})

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'properties.type',
    )
示例#40
0
def test_pattern_with_invalid_regex():
    with pytest.raises(ValidationError) as err:
        schema_validator({'pattern': '(arrst'})

    assert_message_in_errors(
        MESSAGES['pattern']['invalid_regex'],
        err.value.detail,
        'pattern',
    )
示例#41
0
def test_min_and_max_length_with_valid_values():
    try:
        schema_validator({"minLength": 8, "maxLength": 10})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors("minLength", errors)
    assert_path_not_in_errors("maxLength", errors)
示例#42
0
def test_min_and_max_properties_are_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('minProperties', errors)
    assert_path_not_in_errors('maxProperties', errors)
def test_exclusive_minimum_and_maximum_are_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('exclusiveMinimum', errors)
    assert_path_not_in_errors('exclusiveMaximum', errors)
示例#44
0
def test_min_and_max_properties_are_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('minProperties', errors)
    assert_path_not_in_errors('maxProperties', errors)
def test_exclusive_minimum_and_maximum_for_valid_values():
    try:
        schema_validator({'exclusiveMinimum': True, 'exclusiveMaximum': True})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('exclusiveMinimum', errors)
    assert_path_not_in_errors('exclusiveMaximum', errors)
def test_exclusive_minimum_and_maximum_for_valid_values():
    try:
        schema_validator({'exclusiveMinimum': True, 'exclusiveMaximum': True})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('exclusiveMinimum', errors)
    assert_path_not_in_errors('exclusiveMaximum', errors)
def test_exclusive_minimum_and_maximum_are_not_required():
    try:
        schema_validator({})
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('exclusiveMinimum', errors)
    assert_path_not_in_errors('exclusiveMaximum', errors)
示例#48
0
文件: test_type.py 项目: Arable/flex
def test_type_as_valid_array_of_types():
    try:
        schema_validator({
            'type': [STRING, INTEGER, BOOLEAN],
        })
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('type', errors)
示例#49
0
文件: test_type.py 项目: Arable/flex
def test_type_with_invalid_multiple_types():
    with pytest.raises(ValidationError) as err:
        schema_validator({
            'type': [STRING, 'not-a-valid-type', INTEGER, BOOLEAN],
        })

    assert_message_in_errors(
        MESSAGES['enum']['invalid'],
        err.value.detail,
        'type.enum',
    )
def test_exclusive_maximum_for_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({
            'exclusiveMaximum': value,
        })

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'exclusiveMaximum.type',
    )
示例#51
0
文件: test_ref.py 项目: Arable/flex
def test_references_are_deferred():
    context = {"deferred_references": set()}
    try:
        schema_validator({"$ref": "TestReference"}, context=context)
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors("$ref", errors)
    assert "TestReference" in context["deferred_references"]
示例#52
0
文件: test_type.py 项目: Arable/flex
def test_type_as_valid_singular_type():
    try:
        schema_validator({
            'type': BOOLEAN,
        })
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('type', errors)
def test_exclusive_maximum_for_invalid_types(value):
    with pytest.raises(ValidationError) as err:
        schema_validator({
            'exclusiveMaximum': value,
        })

    assert_message_in_errors(
        MESSAGES['type']['invalid'],
        err.value.detail,
        'exclusiveMaximum.type',
    )
示例#54
0
def test_min_length_must_be_positive():
    with pytest.raises(ValidationError) as err:
        schema_validator({
            'minLength': -1,
        })

    assert_message_in_errors(
        MESSAGES['minimum']['invalid'],
        err.value.detail,
        'minLength.minimum',
    )
示例#55
0
def test_type_as_valid_array_of_types():
    try:
        schema_validator({
            'type': [STRING, INTEGER, BOOLEAN],
        })
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('type', errors)
示例#56
0
def test_type_with_invalid_multiple_types():
    with pytest.raises(ValidationError) as err:
        schema_validator({
            'type': [STRING, 'not-a-valid-type', INTEGER, BOOLEAN],
        })

    assert_message_in_errors(
        MESSAGES['enum']['invalid'],
        err.value.detail,
        'type.enum',
    )
示例#57
0
def test_type_as_valid_singular_type():
    try:
        schema_validator({
            'type': BOOLEAN,
        })
    except ValidationError as err:
        errors = err.detail
    else:
        errors = {}

    assert_path_not_in_errors('type', errors)
示例#58
0
def test_max_length_must_be_greater_than_0():
    with pytest.raises(ValidationError) as err:
        schema_validator({
            'maxLength': 0,
        })

    assert_message_in_errors(
        MESSAGES['minimum']['invalid'],
        err.value.detail,
        'maxLength.minimum',
    )
def test_no_correct_type_for_minimum(types):
    with pytest.raises(ValidationError) as err:
        schema_validator({
            'minimum': 7,
            'type': types,
        })

    assert_message_in_errors(
        MESSAGES['type']['invalid_type_for_minimum'],
        err.value.detail,
        'type',
    )
def test_no_correct_type_for_minimum(types):
    with pytest.raises(ValidationError) as err:
        schema_validator({
            'minimum': 7,
            'type': types,
        })

    assert_message_in_errors(
        MESSAGES['type']['invalid_type_for_minimum'],
        err.value.detail,
        'type',
    )