From f40ff1bf5c95696f78ec6ff1862e6954f360a04f Mon Sep 17 00:00:00 2001 From: "Lovett, Trevor" Date: Fri, 14 Jun 2019 08:39:16 -0500 Subject: [PATCH] [VVP] Allow multi-line error messages on error reports Issue-ID: VVP-225 Signed-off-by: Lovett, Trevor (tl2972) Change-Id: Iebee13d29f8025b3dd5c147f2024a484789464f7 --- ice_validator/tests/conftest.py | 10 +++++----- ice_validator/tests/test_environment_file_parameters.py | 11 +++++++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ice_validator/tests/conftest.py b/ice_validator/tests/conftest.py index 439cdd7..1a8b9c1 100644 --- a/ice_validator/tests/conftest.py +++ b/ice_validator/tests/conftest.py @@ -119,10 +119,10 @@ def extract_error_msg(rep): # Extract everything between AssertionError and the start # of the assert statement expansion in the pytest report msg = match.group(1) + elif "AssertionError:" in full_msg: + msg = full_msg.split("AssertionError:")[1] else: - msg = str(rep.longrepr.reprcrash) - if "AssertionError:" in msg: - msg = msg.split("AssertionError:")[1] + msg = full_msg except AttributeError: msg = str(rep) @@ -579,7 +579,7 @@ def generate_excel_report(output_dir, categories, template_path, failures): worksheet.write(row, 0, str(err_num), normal) worksheet.write(row, 1, "\n".join(failure.files), normal) worksheet.write(row, 2, failure.requirement_text(reqs), normal) - worksheet.write(row, 3, failure.error_message, normal) + worksheet.write(row, 3, failure.error_message.replace("\n", "\n\n"), normal) worksheet.write(row, 4, failure.test_id, normal) err_num += 1 worksheet.autofilter( @@ -745,7 +745,7 @@ def generate_html_report(outpath, categories, template_path, failures): { "file_links": make_href(failure.files, template_path), "test_id": failure.test_id, - "error_message": failure.error_message, + "error_message": failure.error_message.replace("\n", "

"), "raw_output": failure.raw_output, "requirements": docutils.core.publish_parts( writer_name="html", source=failure.requirement_text(reqs) diff --git a/ice_validator/tests/test_environment_file_parameters.py b/ice_validator/tests/test_environment_file_parameters.py index 34808b9..010edab 100644 --- a/ice_validator/tests/test_environment_file_parameters.py +++ b/ice_validator/tests/test_environment_file_parameters.py @@ -39,6 +39,7 @@ """ environment file structure """ import os +from collections import Iterable from tests.structures import Heat from tests.utils import nested_dict @@ -228,15 +229,21 @@ def run_check_resource_parameter( if kwargs.get("resource_type_inverse"): resource_type = "non-{}".format(resource_type) + params = ( + ": {}".format(", ".join(invalid_parameters)) + if isinstance(invalid_parameters, Iterable) + else "" + ) + assert not invalid_parameters, ( "{} {} parameters in template {}{}" - " found in {} environment file: {}".format( + " found in {} environment file{}".format( resource_type, prop, filename, " not" if DESIRED else "", environment_pair.get("name"), - ", ".join(invalid_parameters), + params, ) ) -- 2.16.6