# HG changeset patch # User Santeri Piippo # Date 1516635777 -7200 # Node ID 672ebc45685ac85ca83de12eb5a8998518216062 # Parent 327da5d0036010c5442c4ec5bb17c30d1c1423d4 made errors prettier diff -r 327da5d00360 -r 672ebc45685a ldcheck.py --- a/ldcheck.py Mon Jan 22 17:05:10 2018 +0200 +++ b/ldcheck.py Mon Jan 22 17:42:57 2018 +0200 @@ -66,6 +66,8 @@ with open(argv[1], 'r') as file: model_body = read_ldraw(file, config = config) model = Model(body = model_body) + from os.path import basename + model.name = basename(argv[1]) from testsuite import load_tests, check_model, format_report test_suite = load_tests() report = check_model(model, test_suite) diff -r 327da5d00360 -r 672ebc45685a tests/concave.py --- a/tests/concave.py Mon Jan 22 17:05:10 2018 +0200 +++ b/tests/concave.py Mon Jan 22 17:42:57 2018 +0200 @@ -36,9 +36,9 @@ }, 'messages': { 'skew-error': lambda skew_angle: - str.format('Skew quadrilateral (plane angle {}°)', + str.format('skew quadrilateral (plane angle {}°)', '%.2f' % degrees(skew_angle), ), - 'concave-error': 'Concave quadrilateral', + 'concave-error': 'concave quadrilateral', }, } diff -r 327da5d00360 -r 672ebc45685a testsuite.py --- a/testsuite.py Mon Jan 22 17:05:10 2018 +0200 +++ b/testsuite.py Mon Jan 22 17:42:57 2018 +0200 @@ -85,16 +85,29 @@ return report def format_report(report, model, test_suite): + import colorama + colorama.init() result = [] for problem in report: problem_text = test_suite['messages'][problem['name']] if callable(problem_text): problem_text = problem_text(**problem['args']) + if problem['type'] == 'error': + text_colour = colorama.Fore.LIGHTRED_EX + elif problem['type'] == 'warning': + text_colour = colorama.Fore.LIGHTYELLOW_EX + else: + text_colour = '' message = str.format( - 'Line {}: {}\n\t{}', - problem['line-number'], - problem_text, - model.body[problem['body-index']].original_code + '{text_colour}{model_name}:{line_number}: {problem_type}: {message}' + '{colour_reset}\n\t{trouble_source}', + text_colour = text_colour, + model_name = model.name, + line_number = problem['line-number'], + problem_type = problem['type'], + message = problem_text, + colour_reset = colorama.Fore.RESET, + trouble_source = model.body[problem['body-index']].original_code, ) result.append((problem['line-number'], message)) return '\n'.join(