示例#1
0
def test_invalid_no_title():
    raml = load_raml("no-title.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ('RAML File does not define an API title.',)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#2
0
def test_invalid_base_uri_optional():
    raml = load_raml("optional-base-uri-params.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("baseUriParameter 'domainName' must be required", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#3
0
def test_invalid_base_uri_optional():
    raml = load_raml("optional-base-uri-params.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("baseUriParameter 'domainName' must be required",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#4
0
def test_default_to_validate_no_config():
    # Should validate even though it's set to "false" in config
    raml = "tests/data/validate/invalid-protocols.raml"
    with raises as e:
        validate(raml)
    msg = ("'FTP' not a valid protocol for a RAML-defined API.",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#5
0
def test_invalid_request_header_param():
    raml = load_raml("invalid-parameter-type-header.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'invalidType' is not a valid primative parameter type", )
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#6
0
def test_invalid_media_type():
    raml = load_raml("invalid-media-type.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Unsupported MIME Media Type: 'awesome/sauce'.",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#7
0
def test_invalid_root_protocols():
    raml = "tests/data/validate/invalid-protocols.raml"
    config = "tests/data/validate/valid-config.ini"
    with raises as e:
        validate(raml, config)
    msg = ("'FTP' not a valid protocol for a RAML-defined API.",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#8
0
def test_invalid_uri_params_version():
    raml = load_raml("version-in-uri-params.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'version' can only be defined in baseUriParameters.", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#9
0
def test_unsupported_trait_type_str():
    raml = load_raml("trait-unsupported-type-str.raml")
    config = load_config("valid-config.ini")
    with pytest.raises(AssertionError) as e:
        validate(raml, config)
    msg = ("Error parsing trait",)
    assert msg == e.value.args
示例#10
0
def test_invalid_body_mime_type():
    raml = load_raml("invalid-body-mime-type.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Unsupported MIME Media Type: 'invalid/mediatype'.", )
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#11
0
def test_invalid_media_type():
    raml = load_raml("invalid-media-type.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Unsupported MIME Media Type: 'awesome/sauce'.", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#12
0
def test_invalid_body_mime_type():
    raml = load_raml("invalid-body-mime-type.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Unsupported MIME Media Type: 'invalid/mediatype'.",)
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#13
0
def test_invalid_base_uri_not_defined():
    raml = load_raml("no-base-uri.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("RAML File does not define the baseUri.", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#14
0
def test_invalid_request_header_param():
    raml = load_raml("invalid-parameter-type-header.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'invalidType' is not a valid primative parameter type",)
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#15
0
def test_unsupported_trait_type_str():
    raml = load_raml("trait-unsupported-type-str.raml")
    config = load_config("valid-config.ini")
    with pytest.raises(AssertionError) as e:
        validate(raml, config)
    msg = ("Error parsing trait", )
    assert msg == e.value.args
示例#16
0
def test_no_resources_defined():
    raml = load_raml("no-resources.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("API does not define any resources.",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#17
0
def test_invalid_response_code():
    raml = load_raml("invalid-response-code.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'299' not a valid HTTP response code.",)
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#18
0
def test_too_many_assigned_resource_types():
    raml = load_raml("too-many-assigned-res-types.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Too many resource types applied to '/foobar'.", )
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#19
0
def test_invalid_root_protocols():
    raml = "tests/data/validate/invalid-protocols.raml"
    config = "tests/data/validate/valid-config.ini"
    with raises as e:
        validate(raml, config)
    msg = ("'FTP' not a valid protocol for a RAML-defined API.", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#20
0
def test_invalid_no_title():
    raml = load_raml("no-title.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ('RAML File does not define an API title.', )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#21
0
def test_invalid_uri_params_version():
    raml = load_raml("version-in-uri-params.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'version' can only be defined in baseUriParameters.",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#22
0
def test_invalid_docs_no_content():
    raml = load_raml("docs-no-content.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("API Documentation requires content defined.",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#23
0
def test_invalid_base_uri_not_defined():
    raml = load_raml("no-base-uri.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("RAML File does not define the baseUri.",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#24
0
def test_default_to_validate_no_config():
    # Should validate even though it's set to "false" in config
    raml = "tests/data/validate/invalid-protocols.raml"
    with raises as e:
        validate(raml)
    msg = ("'FTP' not a valid protocol for a RAML-defined API.", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#25
0
def test_no_resources_defined():
    raml = load_raml("no-resources.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("API does not define any resources.", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#26
0
def test_invalid_response_code():
    raml = load_raml("invalid-response-code.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'299' not a valid HTTP response code.", )
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#27
0
def test_too_many_assigned_resource_types():
    raml = load_raml("too-many-assigned-res-types.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Too many resource types applied to '/foobar'.",)
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#28
0
def test_invalid_docs_no_content():
    raml = load_raml("docs-no-content.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("API Documentation requires content defined.", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#29
0
def test_no_traits_defined():
    raml = load_raml("no-traits-defined.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Trying to assign traits that are not defined"
           "in the root of the API.",)
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#30
0
def test_traits_undefined():
    raml = load_raml("trait-undefined.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Trait 'undefined' is assigned to '/users/{user_id}/playlists' "
           "but is not defined in the root of the API.", )
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#31
0
def test_undefined_base_uri_and_title():
    raml = load_raml("no-base-uri-no-title.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    assert len(e.value.errors) == 2
    assert isinstance(e.value.errors[0], errors.InvalidRootNodeError)
    assert isinstance(e.value.errors[1], errors.InvalidRootNodeError)
示例#32
0
def test_empty_mapping_trait():
    raml = load_raml("empty-mapping-trait.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)

    msg = ("The trait 'emptyTrait' requires definition.",)
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#33
0
def test_invalid_string_type():
    raml = load_raml("invalid-string-type.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("invalidParamType must be a string type to have min_length "
           "attribute set, not 'integer'.",)
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#34
0
def test_invalid_integer_number_type():
    raml = load_raml("invalid-integer-number-type.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("invalidParamType must be either a number or integer to have "
           "minimum attribute set, not 'string'.",)
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#35
0
def test_assigned_undefined_resource_type():
    raml = load_raml("undefined-resource-type-str.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Resource Type 'undefined' is assigned to '/foo' but is not "
           "defined in the root of the API.", )
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#36
0
def test_empty_mapping_trait():
    raml = load_raml("empty-mapping-trait.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)

    msg = ("The trait 'emptyTrait' requires definition.", )
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#37
0
def test_unsupported_trait_type_array_ints():
    raml = load_raml("trait-unsupported-type-array-ints.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'12' needs to be a string referring to a trait, or a dictionary "
           "mapping parameter values to a trait",)
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#38
0
def test_invalid_body_no_form_params():
    raml = load_raml("invalid-body-no-form-params.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Body with mime_type 'application/x-www-form-urlencoded' requires "
           "formParameters.",)
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#39
0
def test_no_traits_defined():
    raml = load_raml("no-traits-defined.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Trying to assign traits that are not defined"
           "in the root of the API.", )
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#40
0
def test_invalid_version_base_uri():
    raml = load_raml("no-version-base-uri.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("RAML File's baseUri includes {version} parameter but no "
           "version is defined.", )
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#41
0
def test_unsupported_trait_type_array_ints():
    raml = load_raml("trait-unsupported-type-array-ints.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'12' needs to be a string referring to a trait, or a dictionary "
           "mapping parameter values to a trait", )
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#42
0
def test_invalid_version_base_uri():
    raml = load_raml("no-version-base-uri.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("RAML File's baseUri includes {version} parameter but no "
           "version is defined.",)
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg)
示例#43
0
def test_assigned_undefined_resource_type():
    raml = load_raml("undefined-resource-type-str.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Resource Type 'undefined' is assigned to '/foo' but is not "
           "defined in the root of the API.",)
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#44
0
def test_traits_undefined():
    raml = load_raml("trait-undefined.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Trait 'undefined' is assigned to '/users/{user_id}/playlists' "
           "but is not defined in the root of the API.",)
    assert _error_exists(e.value.errors, errors.InvalidResourceNodeError, msg)
示例#45
0
def test_invalid_string_type():
    raml = load_raml("invalid-string-type.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("invalidParamType must be a string type to have min_length "
           "attribute set, not 'integer'.", )
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#46
0
def test_undefined_base_uri_and_title():
    raml = load_raml("no-base-uri-no-title.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    assert len(e.value.errors) == 2
    assert isinstance(e.value.errors[0], errors.InvalidRootNodeError)
    assert isinstance(e.value.errors[1], errors.InvalidRootNodeError)
示例#47
0
def test_invalid_integer_number_type():
    raml = load_raml("invalid-integer-number-type.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("invalidParamType must be either a number or integer to have "
           "minimum attribute set, not 'string'.", )
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#48
0
def test_invalid_response_code_str():
    raml = load_raml("invalid-response-code-str.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = (
        "Response code 'foo' must be an integer representing an HTTP code.", )
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#49
0
def test_invalid_body_no_form_params():
    raml = load_raml("invalid-body-no-form-params.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Body with mime_type 'application/x-www-form-urlencoded' requires "
           "formParameters.", )
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#50
0
def test_invalid_response_code_str():
    raml = load_raml("invalid-response-code-str.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = (
        "Response code 'foo' must be an integer representing an HTTP code.",
    )
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg)
示例#51
0
def test_invalid_base_uri_wrong_type():
    raml = load_raml("invalid-base-uri-params.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Validation errors were found.",)
    msg1 = ("baseUriParameter 'domainName' must be a string",)
    assert e.value.args == msg
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg1)
示例#52
0
def test_invalid_base_uri_wrong_type():
    raml = load_raml("invalid-base-uri-params.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Validation errors were found.", )
    msg1 = ("baseUriParameter 'domainName' must be a string", )
    assert e.value.args == msg
    assert _error_exists(e.value.errors, errors.InvalidRootNodeError, msg1)
示例#53
0
def test_empty_mapping_sec_scheme_settings():
    _raml = "empty-mapping-security-scheme-settings.raml"
    raml = load_raml(_raml)
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'settings' for security scheme 'EmptySettingsScheme' require "
           "definition.",)
    assert _error_exists(e.value.errors, errors.InvalidSecuritySchemeError,
                         msg)
示例#54
0
def test_empty_mapping_sec_scheme_settings():
    _raml = "empty-mapping-security-scheme-settings.raml"
    raml = load_raml(_raml)
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("'settings' for security scheme 'EmptySettingsScheme' require "
           "definition.", )
    assert _error_exists(e.value.errors, errors.InvalidSecuritySchemeError,
                         msg)
示例#55
0
def test_invalid_body_schema():
    raml = load_raml("invalid-body-form-schema.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Validation errors were found.",)
    msg1 = ("Body must define formParameters, not schema/example.",)
    msg2 = ("Body with mime_type 'application/x-www-form-urlencoded' "
            "requires formParameters.",)
    assert msg == e.value.args
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg1)
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg2)
示例#56
0
def test_invalid_body_schema():
    raml = load_raml("invalid-body-form-schema.raml")
    config = load_config("valid-config.ini")
    with raises as e:
        validate(raml, config)
    msg = ("Validation errors were found.", )
    msg1 = ("Body must define formParameters, not schema/example.", )
    msg2 = ("Body with mime_type 'application/x-www-form-urlencoded' "
            "requires formParameters.", )
    assert msg == e.value.args
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg1)
    assert _error_exists(e.value.errors, errors.InvalidParameterError, msg2)
示例#57
0
def test_invalid_docs_not_list():
    raml = load_raml("docs-not-list.raml")
    config = load_config("valid-config.ini")
    with pytest.raises(AssertionError) as e:
        validate(raml, config)
    assert ("Error parsing documentation",) == e.value.args
示例#58
0
def test_undefined_version():
    raml = load_raml("no-version.raml")
    config = load_config("valid-config.ini")
    parsed_raml = validate(raml, config)
    assert not hasattr(parsed_raml, "errors")
示例#59
0
def test_undefined_version():
    raml = load_raml("no-version.raml")
    config = load_config("valid-config.ini")
    parsed_raml = validate(raml, config)
    assert not hasattr(parsed_raml, "errors")
示例#60
0
def test_invalid_docs_not_list():
    raml = load_raml("docs-not-list.raml")
    config = load_config("valid-config.ini")
    with pytest.raises(AssertionError) as e:
        validate(raml, config)
    assert ("Error parsing documentation", ) == e.value.args