mirror of
https://github.com/valitydev/salt.git
synced 2024-11-08 09:23:56 +00:00
8cdb9ea54f
This makes the 2.x usage invalid syntax and forces the use of print as a function. This adds the import to the files which I've updated in the last couple of days but forgot to add it.
147 lines
3.8 KiB
Python
147 lines
3.8 KiB
Python
# coding: utf-8
|
|
|
|
# Import python libs
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
# Import Salt Testing libs
|
|
from tests.support.unit import TestCase
|
|
from tests.support.mixins import AdaptedConfigurationTestCaseMixin
|
|
|
|
# Import Salt libs
|
|
import salt.runner
|
|
|
|
|
|
class RunnerModuleTest(TestCase, AdaptedConfigurationTestCaseMixin):
|
|
# This is really an integration test since it needs a salt-master running
|
|
eauth_creds = {
|
|
'username': 'saltdev_auto',
|
|
'password': 'saltdev',
|
|
'eauth': 'auto',
|
|
}
|
|
|
|
def setUp(self):
|
|
'''
|
|
Configure an eauth user to test with
|
|
'''
|
|
self.runner = salt.runner.RunnerClient(self.get_config('client_config'))
|
|
|
|
def test_eauth(self):
|
|
'''
|
|
Test executing master_call with lowdata
|
|
|
|
The choice of using error.error for this is arbitrary and should be
|
|
changed to some mocked function that is more testing friendly.
|
|
'''
|
|
low = {
|
|
'client': 'runner',
|
|
'fun': 'error.error',
|
|
}
|
|
low.update(self.eauth_creds)
|
|
|
|
self.runner.master_call(**low)
|
|
|
|
def test_token(self):
|
|
'''
|
|
Test executing master_call with lowdata
|
|
|
|
The choice of using error.error for this is arbitrary and should be
|
|
changed to some mocked function that is more testing friendly.
|
|
'''
|
|
import salt.auth
|
|
|
|
auth = salt.auth.LoadAuth(self.get_config('client_config'))
|
|
token = auth.mk_token(self.eauth_creds)
|
|
|
|
self.runner.master_call(**{
|
|
'client': 'runner',
|
|
'fun': 'error.error',
|
|
'token': token['token'],
|
|
})
|
|
|
|
def test_cmd_sync(self):
|
|
low = {
|
|
'client': 'runner',
|
|
'fun': 'error.error',
|
|
}
|
|
low.update(self.eauth_creds)
|
|
|
|
self.runner.cmd_sync(low)
|
|
|
|
def test_cmd_async(self):
|
|
low = {
|
|
'client': 'runner',
|
|
'fun': 'error.error',
|
|
}
|
|
low.update(self.eauth_creds)
|
|
|
|
self.runner.cmd_async(low)
|
|
|
|
def test_cmd_sync_w_arg(self):
|
|
low = {
|
|
'fun': 'test.arg',
|
|
'foo': 'Foo!',
|
|
'bar': 'Bar!',
|
|
}
|
|
low.update(self.eauth_creds)
|
|
|
|
ret = self.runner.cmd_sync(low)
|
|
self.assertEqual(ret['kwargs']['foo'], 'Foo!')
|
|
self.assertEqual(ret['kwargs']['bar'], 'Bar!')
|
|
|
|
def test_wildcard_auth(self):
|
|
low = {
|
|
'username': 'the_s0und_of_t3ch',
|
|
'password': 'willrockyou',
|
|
'eauth': 'auto',
|
|
'fun': 'test.arg',
|
|
'foo': 'Foo!',
|
|
'bar': 'Bar!',
|
|
}
|
|
self.runner.cmd_sync(low)
|
|
|
|
def test_full_return_kwarg(self):
|
|
low = {'fun': 'test.arg'}
|
|
low.update(self.eauth_creds)
|
|
ret = self.runner.cmd_sync(low, full_return=True)
|
|
self.assertIn('success', ret['data'])
|
|
|
|
def test_cmd_sync_arg_kwarg_parsing(self):
|
|
low = {
|
|
'client': 'runner',
|
|
'fun': 'test.arg',
|
|
'arg': [
|
|
'foo',
|
|
'bar=off',
|
|
'baz={qux: 123}'
|
|
],
|
|
'kwarg': {
|
|
'quux': 'Quux',
|
|
},
|
|
'quuz': 'on',
|
|
}
|
|
low.update(self.eauth_creds)
|
|
|
|
ret = self.runner.cmd_sync(low)
|
|
self.assertEqual(ret, {
|
|
'args': ['foo'],
|
|
'kwargs': {
|
|
'bar': False,
|
|
'baz': {
|
|
'qux': 123,
|
|
},
|
|
'quux': 'Quux',
|
|
'quuz': 'on',
|
|
},
|
|
})
|
|
|
|
def test_invalid_kwargs_are_ignored(self):
|
|
low = {
|
|
'client': 'runner',
|
|
'fun': 'test.metasyntactic',
|
|
'thiskwargisbad': 'justpretendimnothere',
|
|
}
|
|
low.update(self.eauth_creds)
|
|
|
|
ret = self.runner.cmd_sync(low)
|
|
self.assertEqual(ret[0], 'foo')
|