Sat, 25 May 2019 09:41:33 +0200
added work on header check
from testsuite import error, warning import linetypes def colours_test(model): ''' Checks that all colours used in the part model are valid. ''' yield from ( warning(element, 'bad-colour', colour_index = element.colour.index) for element in model.body if hasattr(element, 'colour') and not element.colour.is_valid ) def syntax_errors(model): yield from ( error(element, 'syntax-error', reason = element.reason) for element in model.body if isinstance(element, linetypes.Error) ) def bad_header(model): import header if isinstance(model.header, header.BadHeader): yield error( model.body[model.header.index], 'bad-header', reason = model.header.reason, ) manifest = { 'tests': { 'colour-validity': colours_test, 'syntax-errors': syntax_errors, 'header-validity': bad_header, }, 'messages': { 'bad-colour': lambda colour_index: str.format( 'invalid colour {}', colour_index, ), 'syntax-error': lambda reason: str.format( 'syntax error: {}', reason, ), 'bad-header': lambda reason: str.format( 'bad header: {}', reason, ), }, }