ansible/test/lib/ansible_test/_data/sanity/code-smell/action-plugin-docs.py

40 lines
984 B
Python
Raw Normal View History

#!/usr/bin/env python
"""Test to verify action plugins have an associated module to provide documentation."""
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import os
import sys
def main():
"""Main entry point."""
paths = sys.argv[1:] or sys.stdin.read().splitlines()
module_names = set()
for path in paths:
if not path.startswith('lib/ansible/modules/'):
continue
name = os.path.splitext(os.path.basename(path))[0]
if name != '__init__':
if name.startswith('_'):
name = name[1:]
module_names.add(name)
for path in paths:
if not path.startswith('lib/ansible/plugins/action/'):
continue
name = os.path.splitext(os.path.basename(path))[0]
if name not in module_names:
print('%s: action plugin has no matching module to provide documentation' % path)
if __name__ == '__main__':
main()