tests/misc.py

Sat, 25 May 2019 09:41:33 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sat, 25 May 2019 09:41:33 +0200
changeset 47
4da025d0b283
parent 38
66c9591b733d
child 48
38b0919c1934
permissions
-rw-r--r--

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
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
3
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
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
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
6 yield from (
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
7 warning(element, 'bad-colour', colour_index = element.colour.index)
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
8 for element in model.body
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
9 if hasattr(element, 'colour') and not element.colour.is_valid
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
10 )
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
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
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
28 manifest = {
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
29 'tests': {
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
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
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
33 },
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
34 'messages': {
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
35 'bad-colour': lambda colour_index: str.format(
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
36 'invalid colour {}',
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
37 colour_index,
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
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
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
47 },
8990ac138cc2 added check for invalid colours
Santeri Piippo
parents:
diff changeset
48 }

mercurial