Sat, 25 May 2019 09:41:33 +0200
added work on header check
|
38
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
1 | from testsuite import error, warning |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
2 | import linetypes |
| 25 | 3 | |
| 4 | def colours_test(model): | |
|
26
7c263b864371
Added command line option to list all checks.
Santeri Piippo
parents:
25
diff
changeset
|
5 | ''' Checks that all colours used in the part model are valid. ''' |
| 25 | 6 | yield from ( |
| 7 | warning(element, 'bad-colour', colour_index = element.colour.index) | |
| 8 | for element in model.body | |
| 9 | if hasattr(element, 'colour') and not element.colour.is_valid | |
| 10 | ) | |
| 11 | ||
|
38
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
12 | def syntax_errors(model): |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
13 | yield from ( |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
14 | error(element, 'syntax-error', reason = element.reason) |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
15 | for element in model.body |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
16 | if isinstance(element, linetypes.Error) |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
17 | ) |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
18 | |
|
47
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
19 | def bad_header(model): |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
20 | import header |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
21 | if isinstance(model.header, header.BadHeader): |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
22 | yield error( |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
23 | model.body[model.header.index], |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
24 | 'bad-header', |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
25 | reason = model.header.reason, |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
26 | ) |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
27 | |
| 25 | 28 | manifest = { |
| 29 | 'tests': { | |
| 30 | 'colour-validity': colours_test, | |
|
38
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
31 | 'syntax-errors': syntax_errors, |
|
47
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
32 | 'header-validity': bad_header, |
| 25 | 33 | }, |
| 34 | 'messages': { | |
| 35 | 'bad-colour': lambda colour_index: str.format( | |
| 36 | 'invalid colour {}', | |
| 37 | colour_index, | |
| 38 | ), | |
|
38
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
39 | 'syntax-error': lambda reason: str.format( |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
40 | 'syntax error: {}', |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
41 | reason, |
|
66c9591b733d
added proper handling of syntax errors
Teemu Piippo <teemu@hecknology.net>
parents:
26
diff
changeset
|
42 | ), |
|
47
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
43 | 'bad-header': lambda reason: str.format( |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
44 | 'bad header: {}', |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
45 | reason, |
|
4da025d0b283
added work on header check
Teemu Piippo <teemu@hecknology.net>
parents:
38
diff
changeset
|
46 | ), |
| 25 | 47 | }, |
| 48 | } |