mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
to make sure we are handling more use cases. Some paths are not yet complete, including most likely handling of the 'raw' module.
88 lines
2.8 KiB
Python
88 lines
2.8 KiB
Python
# TODO: header
|
|
|
|
from ansible.parsing.mod_args import ModuleArgsParser
|
|
import unittest
|
|
|
|
class TestModArgsDwim(unittest.TestCase):
|
|
|
|
# TODO: add tests that construct ModuleArgsParser with a task reference
|
|
# TODO: verify the AnsibleError raised on failure knows the task
|
|
# and the task knows the line numbers
|
|
|
|
def setUp(self):
|
|
self.m = ModuleArgsParser()
|
|
pass
|
|
|
|
def _debug(self, mod, args, to):
|
|
print "RETURNED module = %s" % mod
|
|
print " args = %s" % args
|
|
print " to = %s" % to
|
|
|
|
def tearDown(self):
|
|
pass
|
|
|
|
def test_basic_shell(self):
|
|
mod, args, to = self.m.parse(dict(shell='echo hi'))
|
|
self._debug(mod, args, to)
|
|
assert mod == 'command'
|
|
assert args == dict(
|
|
_raw_params = 'echo hi',
|
|
_uses_shell = True,
|
|
)
|
|
assert to is None
|
|
|
|
def test_basic_command(self):
|
|
mod, args, to = self.m.parse(dict(command='echo hi'))
|
|
self._debug(mod, args, to)
|
|
assert mod == 'command'
|
|
assert args == dict(
|
|
_raw_params = 'echo hi',
|
|
)
|
|
assert to is None
|
|
|
|
def test_shell_with_modifiers(self):
|
|
mod, args, to = self.m.parse(dict(shell='/bin/foo creates=/tmp/baz removes=/tmp/bleep'))
|
|
self._debug(mod, args, to)
|
|
assert mod == 'command'
|
|
assert args == dict(
|
|
creates = '/tmp/baz',
|
|
removes = '/tmp/bleep',
|
|
_raw_params = '/bin/foo',
|
|
_uses_shell = True,
|
|
)
|
|
assert to is None
|
|
|
|
def test_normal_usage(self):
|
|
mod, args, to = self.m.parse(dict(copy='src=a dest=b'))
|
|
self._debug(mod, args, to)
|
|
assert mod == 'copy'
|
|
assert args == dict(src='a', dest='b')
|
|
assert to is None
|
|
|
|
def test_complex_args(self):
|
|
mod, args, to = self.m.parse(dict(copy=dict(src='a', dest='b')))
|
|
self._debug(mod, args, to)
|
|
assert mod == 'copy'
|
|
assert args == dict(src='a', dest='b')
|
|
assert to is None
|
|
|
|
def test_action_with_complex(self):
|
|
mod, args, to = self.m.parse(dict(action=dict(module='copy', src='a', dest='b')))
|
|
self._debug(mod, args, to)
|
|
assert mod == 'copy'
|
|
assert args == dict(src='a', dest='b')
|
|
assert to is None
|
|
|
|
def test_action_with_complex_and_complex_args(self):
|
|
mod, args, to = self.m.parse(dict(action=dict(module='copy', args=dict(src='a', dest='b'))))
|
|
self._debug(mod, args, to)
|
|
assert mod == 'copy'
|
|
assert args == dict(src='a', dest='b')
|
|
assert to is None
|
|
|
|
def test_local_action_string(self):
|
|
mod, args, to = self.m.parse(dict(local_action='copy src=a dest=b'))
|
|
self._debug(mod, args, to)
|
|
assert mod == 'copy'
|
|
assert args == dict(src='a', dest='b')
|
|
assert to is 'localhost'
|