diff options
Diffstat (limited to 'test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py')
-rw-r--r-- | test/lib/ansible_test/_data/sanity/validate-modules/validate_modules/schema.py | 39 |
1 files changed, 38 insertions, 1 deletions
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 3550d7204f..07034530c1 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 @@ -524,11 +524,48 @@ def doc_schema(module_name, for_collection=False, deprecated_module=False): } doc_schema_dict.update(deprecation_required_scheme) + + def add_default_attributes(more=None): + schema = { + 'description': any_string_types, + 'support': any_string_types, + 'version_added_collection': any_string_types, + 'version_added': any_string_types, + } + if more: + schema.update(more) + return schema + + doc_schema_dict['attributes'] = Schema( + All( + Schema({ + any_string_types: { + Required('description'): any_string_types, + Required('support'): Any('full', 'partial', 'none'), + 'version_added_collection': collection_name, + 'version_added': version(for_collection=for_collection), + }, + }, extra=ALLOW_EXTRA), + partial(version_added, error_code='attribute-invalid-version-added', accept_historical=False), + Schema({ + any_string_types: add_default_attributes(), + 'action_group': add_default_attributes({ + Required('membership'): list_string_types, + }), + 'forced_action_plugin': add_default_attributes({ + Required('action_plugin'): any_string_types, + }), + 'proprietary': add_default_attributes({ + Required('platforms'): list_string_types, + }), + }, extra=PREVENT_EXTRA), + ) + ) return Schema( All( Schema( doc_schema_dict, - extra=ALLOW_EXTRA + extra=PREVENT_EXTRA ), partial(version_added, error_code='module-invalid-version-added', accept_historical=not for_collection), ) |