def test_get_action_fn(self, mock_CONF, mock_validate_args): mock_validate_args.return_value = None action_args = [u'arg'] action_kwargs = ['missing', 'foo', 'bar'] mock_CONF.category.action_fn = mock.sentinel.action_fn mock_CONF.category.action_args = action_args mock_CONF.category.action_kwargs = action_kwargs mock_CONF.category.action_kwarg_foo = u'foo_val' mock_CONF.category.action_kwarg_bar = True mock_CONF.category.action_kwarg_missing = None actual_fn, actual_args, actual_kwargs = cmd_common.get_action_fn() self.assertEqual(mock.sentinel.action_fn, actual_fn) self.assertEqual(action_args, actual_args) self.assertEqual(u'foo_val', actual_kwargs['foo']) self.assertTrue(actual_kwargs['bar']) self.assertNotIn('missing', actual_kwargs)
def main(): """Parse options and call the appropriate class/method.""" CONF.register_cli_opts(cli_opts) CONF.register_cli_opt(category_opt) config.parse_args(sys.argv) if CONF.category.name == "version": print(version.version_string_with_package()) return 0 if CONF.category.name == "bash-completion": cmd_common.print_bash_completion(CATEGORIES) return 0 try: fn, fn_args, fn_kwargs = cmd_common.get_action_fn() ret = fn(*fn_args, **fn_kwargs) return ret except Exception as ex: print(_("error: %s") % ex) return 1
def main(): """Parse options and call the appropriate class/method.""" CONF.register_cli_opt(category_opt) config.parse_args(sys.argv) if CONF.category.name == "version": print(version.version_string_with_package()) return 0 if CONF.category.name == "bash-completion": cmd_common.print_bash_completion(CATEGORIES) return 0 try: fn, fn_args, fn_kwargs = cmd_common.get_action_fn() ret = fn(*fn_args, **fn_kwargs) return ret except Exception: print(_('Error:\n%s') % traceback.format_exc()) # This is 255 so it's not confused with the upgrade check exit codes. return 255