added a test for non-standard whitespace characters in the description

Mon, 24 Jun 2019 01:13:02 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Mon, 24 Jun 2019 01:13:02 +0300
changeset 87
90105119ff90
parent 86
b25fc6f7eb70
child 88
6a0b43a5dec0

added a test for non-standard whitespace characters in the description

tests/misc.py file | annotate | diff | comparison | revisions
--- 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,
     ],
 }

mercurial