diff options
author | Matt Clay <matt@mystile.com> | 2019-08-09 17:56:44 -0700 |
---|---|---|
committer | Matt Clay <matt@mystile.com> | 2019-08-09 18:49:57 -0700 |
commit | 473bd6bb0a72ee6feeac8830c05f293c10e02bad (patch) | |
tree | 7149b95eb731a0db9878d7033ebe8e65dc37c140 /test/lib/ansible_test | |
parent | 3fac6a0adbaafddbbd6caaf000ca2610962aeb2a (diff) | |
download | ansible-473bd6bb0a72ee6feeac8830c05f293c10e02bad.tar.gz |
Relax boilerplate sanity tests.
This will avoid requiring boilerplate for documentation only python files.
Diffstat (limited to 'test/lib/ansible_test')
-rwxr-xr-x | test/lib/ansible_test/_data/sanity/code-smell/future-import-boilerplate.py | 17 | ||||
-rwxr-xr-x | test/lib/ansible_test/_data/sanity/code-smell/metaclass-boilerplate.py | 16 |
2 files changed, 33 insertions, 0 deletions
diff --git a/test/lib/ansible_test/_data/sanity/code-smell/future-import-boilerplate.py b/test/lib/ansible_test/_data/sanity/code-smell/future-import-boilerplate.py index 373fd4d6f2..81081eed7b 100755 --- a/test/lib/ansible_test/_data/sanity/code-smell/future-import-boilerplate.py +++ b/test/lib/ansible_test/_data/sanity/code-smell/future-import-boilerplate.py @@ -2,6 +2,7 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type +import ast import sys @@ -22,6 +23,22 @@ def main(): break if missing: + with open(path) as file: + contents = file.read() + + # noinspection PyBroadException + try: + node = ast.parse(contents) + + # files consisting of only assignments have no need for future import boilerplate + # the only exception would be division during assignment, but we'll overlook that for simplicity + # the most likely case is that of a documentation only python file + if all(isinstance(statement, ast.Assign) for statement in node.body): + missing = False + except Exception: # pylint: disable=broad-except + pass # the compile sanity test will report this error + + if missing: print('%s: missing: from __future__ import (absolute_import, division, print_function)' % path) diff --git a/test/lib/ansible_test/_data/sanity/code-smell/metaclass-boilerplate.py b/test/lib/ansible_test/_data/sanity/code-smell/metaclass-boilerplate.py index cc211a3617..28d06f363b 100755 --- a/test/lib/ansible_test/_data/sanity/code-smell/metaclass-boilerplate.py +++ b/test/lib/ansible_test/_data/sanity/code-smell/metaclass-boilerplate.py @@ -2,6 +2,7 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type +import ast import sys @@ -21,6 +22,21 @@ def main(): break if missing: + with open(path) as file: + contents = file.read() + + # noinspection PyBroadException + try: + node = ast.parse(contents) + + # files consisting of only assignments have no need for metaclass boilerplate + # the most likely case is that of a documentation only python file + if all(isinstance(statement, ast.Assign) for statement in node.body): + missing = False + except Exception: # pylint: disable=broad-except + pass # the compile sanity test will report this error + + if missing: print('%s: missing: __metaclass__ = type' % path) |