diff options
author | Pilou <pierre-louis@libregerbil.fr> | 2017-11-17 18:17:07 +0100 |
---|---|---|
committer | Matt Clay <matt@mystile.com> | 2017-11-17 09:17:07 -0800 |
commit | a5c9726502a0f15f03da9f8b38141a6de81631ec (patch) | |
tree | 1c8208edc5c53cba018582394a132b2efc7f510b /test/units/modules/utils.py | |
parent | 71a6dcdf3e528bd088b1399b9dcf3cfb62ae0f36 (diff) | |
download | ansible-a5c9726502a0f15f03da9f8b38141a6de81631ec.tar.gz |
Unit tests: share common code (#31456)
* move set_module_args to units.modules.utils
* unit tests: reuse set_module_args
* unit tests: mock exit/fail_json in module.utils.ModuleTestCase
* unit tests: use module.utils.ModuleTestCase
* unit tests: fix 'import shadowed by loop variable'
Diffstat (limited to 'test/units/modules/utils.py')
-rw-r--r-- | test/units/modules/utils.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/units/modules/utils.py b/test/units/modules/utils.py new file mode 100644 index 0000000000..a0e9351b12 --- /dev/null +++ b/test/units/modules/utils.py @@ -0,0 +1,38 @@ +import json + +from ansible.compat.tests import unittest +from ansible.compat.tests.mock import patch +from ansible.module_utils import basic +from ansible.module_utils._text import to_bytes + + +def set_module_args(args): + args = json.dumps({'ANSIBLE_MODULE_ARGS': args}) + basic._ANSIBLE_ARGS = to_bytes(args) + + +class AnsibleExitJson(Exception): + pass + + +class AnsibleFailJson(Exception): + pass + + +def exit_json(*args, **kwargs): + if 'changed' not in kwargs: + kwargs['changed'] = False + raise AnsibleExitJson(kwargs) + + +def fail_json(*args, **kwargs): + kwargs['failed'] = True + raise AnsibleFailJson(kwargs) + + +class ModuleTestCase(unittest.TestCase): + + def setUp(self): + self.mock_module = patch.multiple(basic.AnsibleModule, exit_json=exit_json, fail_json=fail_json) + self.mock_module.start() + self.addCleanup(self.mock_module.stop) |