def test_function(self): ''' Test to execute a single module function on a remote minion via salt or salt-ssh ''' name = 'state' tgt = 'larry' comt = ('Function state will be executed' ' on target {0} as test=False'.format(tgt)) ret = {'name': name, 'changes': {}, 'result': None, 'comment': comt} with patch.dict(saltmod.__opts__, {'test': True}): self.assertDictEqual(saltmod.function(name, tgt), ret) ret.update({'result': True, 'changes': {'out': 'highstate', 'ret': {tgt: ''}}, 'comment': 'Function ran successfully.' ' Function state ran on {0}.'.format(tgt)}) with patch.dict(saltmod.__opts__, {'test': False}): mock_ret = {'larry': {'ret': '', 'retcode': 0, 'failed': False}} mock_cmd = MagicMock(return_value=mock_ret) with patch.dict(saltmod.__salt__, {'saltutil.cmd': mock_cmd}): self.assertDictEqual(saltmod.function(name, tgt), ret)
def test_function(self): """ Test to execute a single module function on a remote minion via salt or salt-ssh """ name = "state" tgt = "larry" ret = { "name": name, "changes": {}, "result": None, "comment": "Function state would be executed on target {}".format(tgt), } with patch.dict(saltmod.__opts__, {"test": True}): self.assertDictEqual(saltmod.function(name, tgt), ret) ret.update( { "result": True, "changes": {"ret": {tgt: ""}}, "comment": ( "Function ran successfully. Function state ran on {}.".format(tgt) ), } ) with patch.dict(saltmod.__opts__, {"test": False}): mock_ret = {"larry": {"ret": "", "retcode": 0, "failed": False}} mock_cmd = MagicMock(return_value=mock_ret) with patch.dict(saltmod.__salt__, {"saltutil.cmd": mock_cmd}): self.assertDictEqual(saltmod.function(name, tgt), ret)
def test_function_ssh(self): """ Test saltmod function passes roster to saltutil.cmd """ origcmd = saltmod.__salt__["saltutil.cmd"] cmd_kwargs = {} cmd_args = [] def cmd_mock(*args, **kwargs): cmd_args.extend(args) cmd_kwargs.update(kwargs) return origcmd(*args, **kwargs) with patch.dict(saltmod.__opts__, {"test": False}), patch.dict( saltmod.__salt__, {"saltutil.cmd": cmd_mock}): saltmod.function("state", tgt="*", ssh=True, roster="my_roster") assert "roster" in cmd_kwargs assert cmd_kwargs["roster"] == "my_roster"
def test_function_when_no_minions_match(self): """ Test to execute a single module function on a remote minion via salt or salt-ssh """ name = "state" tgt = "larry" mock_ret = {} mock_cmd = MagicMock(return_value=mock_ret) ret = { "name": name, "changes": {}, "result": False, "comment": "No minions responded", } with patch.dict(saltmod.__opts__, {"test": False}): with patch.dict(saltmod.__salt__, {"saltutil.cmd": mock_cmd}): self.assertDictEqual(saltmod.function(name, tgt), ret)