mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright (c) 2021 Ansible Project
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
from __future__ import absolute_import, division, print_function
|
|
__metaclass__ = type
|
|
|
|
import ansible.module_utils.common.warnings as warnings
|
|
|
|
from ansible.module_utils.common.arg_spec import ModuleArgumentSpecValidator, ValidationResult
|
|
|
|
|
|
def test_module_validate():
|
|
arg_spec = {'name': {}}
|
|
parameters = {'name': 'larry'}
|
|
expected = {'name': 'larry'}
|
|
|
|
v = ModuleArgumentSpecValidator(arg_spec)
|
|
result = v.validate(parameters)
|
|
|
|
assert isinstance(result, ValidationResult)
|
|
assert result.error_messages == []
|
|
assert result._deprecations == []
|
|
assert result._warnings == []
|
|
assert result.validated_parameters == expected
|
|
|
|
|
|
def test_module_alias_deprecations_warnings(monkeypatch):
|
|
monkeypatch.setattr(warnings, '_global_deprecations', [])
|
|
|
|
arg_spec = {
|
|
'path': {
|
|
'aliases': ['source', 'src', 'flamethrower'],
|
|
'deprecated_aliases': [{'name': 'flamethrower', 'date': '2020-03-04'}],
|
|
},
|
|
}
|
|
parameters = {'flamethrower': '/tmp', 'source': '/tmp'}
|
|
expected = {
|
|
'path': '/tmp',
|
|
'flamethrower': '/tmp',
|
|
'source': '/tmp',
|
|
}
|
|
|
|
v = ModuleArgumentSpecValidator(arg_spec)
|
|
result = v.validate(parameters)
|
|
|
|
assert result.validated_parameters == expected
|
|
assert result._deprecations == [
|
|
{
|
|
'collection_name': None,
|
|
'date': '2020-03-04',
|
|
'name': 'flamethrower',
|
|
'version': None,
|
|
}
|
|
]
|
|
assert "Alias 'flamethrower' is deprecated" in warnings._global_deprecations[0]['msg']
|
|
assert result._warnings == [{'alias': 'flamethrower', 'option': 'path'}]
|
|
assert "Both option path and its alias flamethrower are set" in warnings._global_warnings[0]
|