mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 00:55:19 +00:00
3273bbdab7
Conflicts: - doc/ref/configuration/master.rst - doc/ref/modules/all/index.rst - doc/topics/grains/index.rst - doc/topics/releases/2016.3.4.rst - doc/topics/spm/spm_formula.rst - doc/topics/tutorials/cron.rst - doc/topics/tutorials/index.rst - doc/topics/tutorials/stormpath.rst - salt/engines/slack.py - salt/log/handlers/fluent_mod.py - salt/modules/cyg.py - salt/modules/junos.py - salt/modules/namecheap_dns.py - salt/modules/namecheap_domains.py - salt/modules/namecheap_ns.py - salt/modules/namecheap_ssl.py - salt/modules/namecheap_users.py - salt/modules/reg.py - salt/modules/tomcat.py - salt/modules/vault.py - salt/modules/win_file.py - salt/modules/zpool.py - salt/output/highstate.py - salt/renderers/pass.py - salt/runners/cache.py - salt/states/boto_apigateway.py - salt/states/boto_iam.py - salt/states/boto_route53.py - salt/states/msteams.py - salt/states/reg.py - salt/states/win_iis.py - tests/integration/modules/test_cmdmod.py - tests/integration/states/test_user.py - tests/support/helpers.py - tests/unit/cloud/clouds/test_openstack.py - tests/unit/fileserver/test_gitfs.py - tests/unit/modules/test_junos.py - tests/unit/pillar/test_git.py - tests/unit/states/test_win_path.py - tests/unit/test_pillar.py - tests/unit/utils/test_format_call.py - tests/unit/utils/test_utils.py - tests/unit/utils/test_warnings.py
81 lines
2.2 KiB
Python
81 lines
2.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
:codeauthor: Daniel Mizyrycki (mzdaniel@glidelink.net)
|
|
|
|
|
|
tests.integration.cli.custom_module
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Test salt-ssh sls with a custom module work.
|
|
|
|
$ cat srv/custom_module.sls
|
|
custom-module:
|
|
module.run:
|
|
- name: test.recho
|
|
- text: hello
|
|
|
|
|
|
$ cat srv/_modules/override_test.py
|
|
__virtualname__ = 'test'
|
|
|
|
def __virtual__():
|
|
return __virtualname__
|
|
|
|
def recho(text):
|
|
return text[::-1]
|
|
|
|
|
|
$ salt-ssh localhost state.sls custom_module
|
|
localhost:
|
|
olleh
|
|
|
|
|
|
This test can be run in a small test suite with:
|
|
|
|
$ python tests/runtests.py -C --ssh
|
|
'''
|
|
# Import Python libs
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
# Import test Libs
|
|
from tests.support.case import SSHCase
|
|
|
|
|
|
class SSHCustomModuleTest(SSHCase):
|
|
'''
|
|
Test sls with custom module functionality using ssh
|
|
'''
|
|
|
|
def test_ssh_regular_module(self):
|
|
'''
|
|
Test regular module work using SSHCase environment
|
|
'''
|
|
expected = 'hello'
|
|
cmd = self.run_function('test.echo', arg=['hello'])
|
|
self.assertEqual(expected, cmd)
|
|
|
|
def test_ssh_custom_module(self):
|
|
'''
|
|
Test custom module work using SSHCase environment
|
|
'''
|
|
expected = 'hello'[::-1]
|
|
cmd = self.run_function('test.recho', arg=['hello'])
|
|
self.assertEqual(expected, cmd)
|
|
|
|
def test_ssh_sls_with_custom_module(self):
|
|
'''
|
|
Test sls with custom module work using SSHCase environment
|
|
'''
|
|
expected = {
|
|
"module_|-regular-module_|-test.echo_|-run": 'hello',
|
|
"module_|-custom-module_|-test.recho_|-run": 'olleh'}
|
|
cmd = self.run_function('state.sls', arg=['custom_module'])
|
|
for key in cmd:
|
|
if not isinstance(cmd, dict) or not isinstance(cmd[key], dict):
|
|
raise AssertionError('{0} is not a proper state return'
|
|
.format(cmd))
|
|
elif not cmd[key]['result']:
|
|
raise AssertionError(cmd[key]['comment'])
|
|
cmd_ret = cmd[key]['changes'].get('ret', None)
|
|
self.assertEqual(cmd_ret, expected[key])
|