Add robustness to our v2 schema error messages:

* Ensure we dont raise exception if e.cause does not contain a message
* Ensure we handle case where e.path may be empty
* Refactor existing tests to conform to new format
This commit is contained in:
Imdad Ahad
2016-12-15 16:35:27 +00:00
parent 2c9a3f6f57
commit 7634c2e772
3 changed files with 24 additions and 4 deletions

View File

@@ -42,4 +42,25 @@ def build_error_message(errors):
def __format_message(e):
return e.message.replace("'", "") if not e.cause else "{} {}".format(e.path[0], e.cause.message)
def get_path(e):
error_path = None
try:
error_path = e.path[0]
finally:
return error_path
def get_error_message(e):
error_message = None
try:
error_message = e.cause.message
except AttributeError:
error_message = e.message
finally:
return error_message.replace("'", '')
path = get_path(e)
message = get_error_message(e)
if path:
return "{} {}".format(path, message)
else:
return "{}".format(message)