--- a/tests/misc.py Mon Jun 24 01:06:37 2019 +0300 +++ b/tests/misc.py Mon Jun 24 01:13:02 2019 +0300 @@ -229,6 +229,31 @@ command_text = element.text, ) +@problem_type('bad-whitespace', + severity = 'hold', + message = lambda whitespaces: str.format( + 'non-standard whitespace in description: {whitespaces}', + whitespaces = whitespaces, + ) +) +def bad_whitespace_test(model): + if model.header.valid: + import re + description = model.header.description + # checking against string.whitespace is not adequate enough + # because it only contains ASCII characters. So checking using a + # regular expression is necessary. + bad_whitespaces = set(re.findall('\s', description)) - {' '} + if bad_whitespaces: + yield report_problem( + 'bad-whitespace', + bad_object = model.body[0], + whitespaces = ', '.join( + repr(whitespace) + for whitespace in sorted(bad_whitespaces) + ), + ) + manifest = { 'tests': [ colours_test, @@ -243,5 +268,6 @@ moved_to_with_extension_test, bfc_invertnext_not_on_subfile_test, metacommands_test, + bad_whitespace_test, ], }