diff --git a/changelogs/fragments/75324-ansible-test-validate-modules-info-facts-check_mode.yml b/changelogs/fragments/75324-ansible-test-validate-modules-info-facts-check_mode.yml new file mode 100644 index 00000000000..a099ccb49fe --- /dev/null +++ b/changelogs/fragments/75324-ansible-test-validate-modules-info-facts-check_mode.yml @@ -0,0 +1,2 @@ +minor_changes: +- "ansible-test validate-modules - enforce that ``_info`` and ``_facts`` modules set ``supports_check_mode=True`` (https://github.com/ansible/ansible/pull/75324)." diff --git a/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/main.py b/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/main.py index 8f03786f19e..a3f5e1fa47c 100644 --- a/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/main.py +++ b/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/main.py @@ -1173,8 +1173,8 @@ class ModuleValidator(Validator): ) return - self._validate_docs_schema(kwargs, ansible_module_kwargs_schema(for_collection=bool(self.collection)), - 'AnsibleModule', 'invalid-ansiblemodule-schema') + schema = ansible_module_kwargs_schema(self.object_name.split('.')[0], for_collection=bool(self.collection)) + self._validate_docs_schema(kwargs, schema, 'AnsibleModule', 'invalid-ansiblemodule-schema') self._validate_argument_spec(docs, spec, kwargs) diff --git a/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py b/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py index dfce5f9d422..3550d7204f4 100644 --- a/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py +++ b/test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py @@ -253,7 +253,7 @@ def argument_spec_schema(for_collection): return Schema(schemas) -def ansible_module_kwargs_schema(for_collection): +def ansible_module_kwargs_schema(module_name, for_collection): schema = { 'argument_spec': argument_spec_schema(for_collection), 'bypass_checks': bool, @@ -262,6 +262,9 @@ def ansible_module_kwargs_schema(for_collection): 'add_file_common_args': bool, 'supports_check_mode': bool, } + if module_name.endswith(('_info', '_facts')): + del schema['supports_check_mode'] + schema[Required('supports_check_mode')] = True schema.update(argument_spec_modifiers) return Schema(schema)