From 76cfa5b9c8eea278fab94d53ed390c369f22f6c3 Mon Sep 17 00:00:00 2001 From: Tamar Ben-Shachar Date: Wed, 24 Feb 2016 18:57:47 -0800 Subject: [PATCH] allow flexibility in error messaging for JsonSchemaMismatch error type --- dcos/cosmospackage.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/dcos/cosmospackage.py b/dcos/cosmospackage.py index 7b997f9..d8484fd 100644 --- a/dcos/cosmospackage.py +++ b/dcos/cosmospackage.py @@ -525,12 +525,20 @@ def _format_json_schema_mismatch_message(error): error_messages = ["Error: {}".format(error.get("message"))] for err in error.get("data").get("errors"): - found = "Found: {}\n".format(err.get("found")) - expected = "Expected: {}\n".format(",".join(err.get("expected"))) - pointer = err.get("instance").get("pointer") - formatted_path = pointer.lstrip("/").replace("/", ".") - path = "Path: {}".format(formatted_path) - error_messages += [found + expected + path] + if err.get("unwanted"): + reason = "Unexpected properties: {}".format(err["unwanted"]) + error_messages += [reason] + if err.get("found"): + found = "Found: {}".format(err["found"]) + error_messages += [found] + if err.get("expected"): + expected = "Expected: {}".format(",".join(err["expected"])) + error_messages += [expected] + if err.get("instance"): + pointer = err["instance"].get("pointer") + formatted_path = pointer.lstrip("/").replace("/", ".") + path = "Path: {}".format(formatted_path) + error_messages += [path] error_messages += [ "\nPlease create a JSON file with the appropriate options, and"