Merge "Fixed error-handling for input data validation"

This commit is contained in:
Jenkins 2016-03-10 07:37:40 +00:00 committed by Gerrit Code Review
commit 6e94aee106
3 changed files with 12 additions and 10 deletions

View File

@ -310,10 +310,12 @@ class RepositoryApi(object):
try: try:
jsonschema.validate(data, schema) jsonschema.validate(data, schema)
except jsonschema.ValidationError as e: except jsonschema.ValidationError as e:
self._raise_validation_error("data", e.message, e.absolute_path) self._raise_validation_error(
"data", e.message, e.path
)
except jsonschema.SchemaError as e: except jsonschema.SchemaError as e:
self._raise_validation_error( self._raise_validation_error(
"schema", e.message, e.absolute_schema_path "schema", e.message, e.schema_path
) )
@staticmethod @staticmethod

View File

@ -21,6 +21,6 @@ PACKAGE_FILES_SCHEMA = {
"type": "array", "type": "array",
"items": { "items": {
"type": "string", "type": "string",
"pattern": "^(\/|file:\/\/|https?:\/\/).+$" "pattern": r"^(/|file:///|https?://).+$"
} }
} }

View File

@ -251,9 +251,8 @@ class TestPackageFilesSchema(base.TestCase):
def test_valid_file_urls(self): def test_valid_file_urls(self):
file_urls = [ file_urls = [
"file://test1.pkg", "file:///test1.pkg",
"file:///test2.pkg", "/test2.pkg",
"/test3.pkg",
"http://test4.pkg", "http://test4.pkg",
"https://test5.pkg" "https://test5.pkg"
] ]
@ -278,10 +277,11 @@ class TestPackageFilesSchema(base.TestCase):
def test_validation_fail_if_invalid_file_urls(self): def test_validation_fail_if_invalid_file_urls(self):
file_urls = [ file_urls = [
["test1.pkg"], # does not match pattern ["test1.pkg"],
["./test2.pkg"], # does not match pattern ["./test2.pkg"],
["file//test3.pkg"], # does not match pattern ["file//test3.pkg"],
["http//test4.pkg"] # does not match pattern ["http//test4.pkg"],
["file://test4.pkg"]
] ]
for url in file_urls[2:]: for url in file_urls[2:]: