def test_action_unknown(self): """Verify that attempt to perform unknown action fails""" bad_action = "foo" actions.main([bad_action]) actions.function_fail.assert_called_with( "Action {} undefined" "".format(bad_action) )
def test_invokes_action(self): dummy_calls = [] def dummy_action(args): dummy_calls.append(True) with mock.patch.dict(actions.ACTIONS, {"foo": dummy_action}): actions.main(["foo"]) self.assertEqual(dummy_calls, [True])
def test_failing_action(self): """Actions which traceback trigger action_fail() calls.""" dummy_calls = [] self.action_fail.side_effect = dummy_calls.append def dummy_action(args): raise ValueError("uh oh") with mock.patch.dict(actions.ACTIONS, {"foo": dummy_action}): actions.main(["foo"]) self.assertEqual(dummy_calls, ["uh oh"])
def test_main(self): self.patch_object(actions, 'ACTIONS') self.patch_object(actions.ch_core.hookenv, 'action_fail') args = ['/non-existent/path/to/charm/binary/promote'] function = mock.MagicMock() self.ACTIONS.__getitem__.return_value = function actions.main(args) function.assert_called_once_with(args) self.ACTIONS.__getitem__.side_effect = KeyError self.assertEqual(actions.main(args), 'Action promote is undefined') self.ACTIONS.__getitem__.side_effect = None function.side_effect = Exception('random exception') actions.main(args) self.action_fail.assert_called_once_with('random exception')
def test_unknown_action(self): """Unknown actions aren't a traceback.""" exit_string = actions.main(["foo"]) self.assertEqual("Action foo undefined", exit_string)
def call_action(self): """Shortcut to calling action based on the current TestCase""" actions.main([self.NAME])