From 5b3557f8ba5c176eb7d2de21b3a4da3dcab3bada Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Mon, 6 Jun 2022 23:27:31 -0700 Subject: [PATCH] ansible-test - Allow docstring in docs-only module --- .../ansible-test-validate-modules-docs-only-docstring.yml | 3 +++ .../sanity/validate-modules/validate_modules/main.py | 4 ++++ 2 files changed, 7 insertions(+) create mode 100644 changelogs/fragments/ansible-test-validate-modules-docs-only-docstring.yml diff --git a/changelogs/fragments/ansible-test-validate-modules-docs-only-docstring.yml b/changelogs/fragments/ansible-test-validate-modules-docs-only-docstring.yml new file mode 100644 index 00000000000..21c353145e8 --- /dev/null +++ b/changelogs/fragments/ansible-test-validate-modules-docs-only-docstring.yml @@ -0,0 +1,3 @@ +bugfixes: + - ansible-test - validate-modules - Documentation-only modules, used for documenting actions, + are now allowed to have docstrings (https://github.com/ansible/ansible/issues/77972). diff --git a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py index d81a8a06eaf..dde9744d548 100644 --- a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py +++ b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py @@ -412,6 +412,10 @@ class ModuleValidator(Validator): try: for child in self.ast.body: if not isinstance(child, ast.Assign): + # allow string constant expressions (these are docstrings) + if isinstance(child, ast.Expr) and isinstance(child.value, ast.Constant) and isinstance(child.value.value, str): + continue + # allowed from __future__ imports if isinstance(child, ast.ImportFrom) and child.module == '__future__': for future_import in child.names: