diff options
Diffstat (limited to 'Examples/test-suite/python/comment_verifier.py')
-rw-r--r-- | Examples/test-suite/python/comment_verifier.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Examples/test-suite/python/comment_verifier.py b/Examples/test-suite/python/comment_verifier.py new file mode 100644 index 000000000..653cb4940 --- /dev/null +++ b/Examples/test-suite/python/comment_verifier.py @@ -0,0 +1,26 @@ +def check(got, expected, expected_builtin=None): + if got is None: # Absence of comment is equivalent to empty comment. + got = "" + + if got != expected: + import re + p = re.compile(r"^[+-]([^+-].*\S)?(\s+)$", re.M) + + def make_trailing_spaces_visible(str): + def replace_trailing_spaces(match): + res = match.group(0) + spaces = match.group(2) + if spaces is not None: + res = res + "{+%d trailing spaces}" % len(spaces) + return res + return re.sub(p, replace_trailing_spaces, str) + + from difflib import unified_diff + diff = unified_diff(expected.splitlines(True), + got.splitlines(True), "expected", "got") + lines = [] + for line in diff: + line = make_trailing_spaces_visible(line.strip("\r\n")) + lines.append(line + "\n") + + raise RuntimeError("Comments don't match:\n" + "".join(lines)) |