83 del problem['object'] |
83 del problem['object'] |
84 report.append(problem) |
84 report.append(problem) |
85 return report |
85 return report |
86 |
86 |
87 def format_report(report, model, test_suite): |
87 def format_report(report, model, test_suite): |
|
88 import colorama |
|
89 colorama.init() |
88 result = [] |
90 result = [] |
89 for problem in report: |
91 for problem in report: |
90 problem_text = test_suite['messages'][problem['name']] |
92 problem_text = test_suite['messages'][problem['name']] |
91 if callable(problem_text): |
93 if callable(problem_text): |
92 problem_text = problem_text(**problem['args']) |
94 problem_text = problem_text(**problem['args']) |
|
95 if problem['type'] == 'error': |
|
96 text_colour = colorama.Fore.LIGHTRED_EX |
|
97 elif problem['type'] == 'warning': |
|
98 text_colour = colorama.Fore.LIGHTYELLOW_EX |
|
99 else: |
|
100 text_colour = '' |
93 message = str.format( |
101 message = str.format( |
94 'Line {}: {}\n\t{}', |
102 '{text_colour}{model_name}:{line_number}: {problem_type}: {message}' |
95 problem['line-number'], |
103 '{colour_reset}\n\t{trouble_source}', |
96 problem_text, |
104 text_colour = text_colour, |
97 model.body[problem['body-index']].original_code |
105 model_name = model.name, |
|
106 line_number = problem['line-number'], |
|
107 problem_type = problem['type'], |
|
108 message = problem_text, |
|
109 colour_reset = colorama.Fore.RESET, |
|
110 trouble_source = model.body[problem['body-index']].original_code, |
98 ) |
111 ) |
99 result.append((problem['line-number'], message)) |
112 result.append((problem['line-number'], message)) |
100 return '\n'.join( |
113 return '\n'.join( |
101 problem[1] |
114 problem[1] |
102 for problem in sorted(result) |
115 for problem in sorted(result) |