summaryrefslogtreecommitdiff
path: root/test/sanity/code-smell
diff options
context:
space:
mode:
authorMatt Clay <matt@mystile.com>2019-02-05 14:56:04 -0800
committerMatt Clay <matt@mystile.com>2019-02-05 15:21:01 -0800
commit06d83bae056bbc9de904a238e480acf1147fe80e (patch)
treedf0d5c8b3b7553a133ad8c6e5ba560b93dc398ac /test/sanity/code-smell
parentb8a7e35b22f277c027e15084aa062a2dd1ff0be2 (diff)
downloadansible-06d83bae056bbc9de904a238e480acf1147fe80e.tar.gz
Support `ignore_changes` in code-smell tests.
Diffstat (limited to 'test/sanity/code-smell')
-rw-r--r--test/sanity/code-smell/action-plugin-docs.json9
-rwxr-xr-xtest/sanity/code-smell/action-plugin-docs.py31
2 files changed, 26 insertions, 14 deletions
diff --git a/test/sanity/code-smell/action-plugin-docs.json b/test/sanity/code-smell/action-plugin-docs.json
index 39ac4bd57f..d029aaf7d6 100644
--- a/test/sanity/code-smell/action-plugin-docs.json
+++ b/test/sanity/code-smell/action-plugin-docs.json
@@ -1,4 +1,11 @@
{
- "always": true,
+ "ignore_changes": true,
+ "prefixes": [
+ "lib/ansible/modules/",
+ "lib/ansible/plugins/action/"
+ ],
+ "extensions": [
+ ".py"
+ ],
"output": "path-message"
}
diff --git a/test/sanity/code-smell/action-plugin-docs.py b/test/sanity/code-smell/action-plugin-docs.py
index db0b853da8..76de98ea4d 100755
--- a/test/sanity/code-smell/action-plugin-docs.py
+++ b/test/sanity/code-smell/action-plugin-docs.py
@@ -2,6 +2,7 @@
"""Test to verify action plugins have an associated module to provide documentation."""
import os
+import sys
def main():
@@ -40,31 +41,35 @@ def main():
'vyos',
])
+ paths = sys.argv[1:] or sys.stdin.read().splitlines()
+
module_names = set()
- for root, dirs, files in os.walk('lib/ansible/modules'):
- for filename in files:
- name, ext = os.path.splitext(filename)
+ for path in paths:
+ if not path.startswith('lib/ansible/modules/'):
+ continue
+
+ name = os.path.splitext(os.path.basename(path))[0]
- if ext == '.py' and name != '__init__':
- if name.startswith('_'):
- name = name[1:]
+ if name != '__init__':
+ if name.startswith('_'):
+ name = name[1:]
- module_names.add(name)
+ module_names.add(name)
- action_plugin_dir = 'lib/ansible/plugins/action'
unused_skip = set(skip)
- for filename in os.listdir(action_plugin_dir):
- name, ext = os.path.splitext(filename)
+ for path in paths:
+ if not path.startswith('lib/ansible/plugins/action/'):
+ continue
- if ext == '.py' and name not in module_names:
+ name = os.path.splitext(os.path.basename(path))[0]
+
+ if name not in module_names:
if name in skip:
unused_skip.remove(name)
continue
- path = os.path.join(action_plugin_dir, filename)
-
print('%s: action plugin has no matching module to provide documentation' % path)
for filename in sorted(unused_skip):