tests/bad-whitespace.py

changeset 88
6a0b43a5dec0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/bad-whitespace.py	Mon Jun 24 09:45:41 2019 +0300
@@ -0,0 +1,29 @@
+from testsuite import problem_type, report_problem
+import linetypes
+
+@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': [bad_whitespace_test]}

mercurial