testsuite.py

changeset 64
1c0884f5506e
parent 63
8949af6a4279
child 65
f2dc17b830e0
child 98
f9d4e59392f7
equal deleted inserted replaced
63:8949af6a4279 64:1c0884f5506e
1 from warnings import warn 1 from warnings import warn
2 2
3 class ProblemType: 3 class ProblemType:
4 severities = ['error', 'notice'] # in descending order 4 severities = ['hold', 'warning'] # in descending order
5 def __init__(self, name, severity, message): 5 def __init__(self, name, severity, message):
6 if severity not in ProblemType.severities: 6 if severity not in ProblemType.severities:
7 raise ValueError(str.format( 7 raise ValueError(str.format(
8 'bad severity {severity!r}', 8 'bad severity {severity!r}',
9 severity = severity, 9 severity = severity,
115 = line_numbers[problem.object] 115 = line_numbers[problem.object]
116 problem.object = None 116 problem.object = None
117 problems.append(problem) 117 problems.append(problem)
118 return { 118 return {
119 'passed': not any( 119 'passed': not any(
120 problem.severity == 'error' 120 problem.severity == 'hold'
121 for problem in problems 121 for problem in problems
122 ), 122 ),
123 'problems': sorted(problems, key = problem_key), 123 'problems': sorted(problems, key = problem_key),
124 } 124 }
125 125
148 def format_report(report, model, test_suite): 148 def format_report(report, model, test_suite):
149 import colorama 149 import colorama
150 colorama.init() 150 colorama.init()
151 messages = [] 151 messages = []
152 for problem in report['problems']: 152 for problem in report['problems']:
153 if problem.severity == 'error': 153 if problem.severity == 'hold':
154 text_colour = colorama.Fore.LIGHTRED_EX 154 text_colour = colorama.Fore.LIGHTRED_EX
155 elif problem.severity == 'notice': 155 elif problem.severity == 'warning':
156 text_colour = colorama.Fore.LIGHTBLUE_EX 156 text_colour = colorama.Fore.LIGHTBLUE_EX
157 else: 157 else:
158 text_colour = '' 158 text_colour = ''
159 ldraw_code = model.body[problem.body_index].textual_representation() 159 ldraw_code = model.body[problem.body_index].textual_representation()
160 message = str.format( 160 message = str.format(

mercurial