def test_parse_v20_cmd(self): res = ucs.parse(getpath('../tests/response/clispec-sample-2.0.xml')) cmd = res.svcinfo.lscluster self.assertEqual(ucs.SVCCommand, type(cmd)) self.assertTrue(ucr.is_svc_response(cmd.resp_helper)) expect_ = r'''Help on lscluster(**kwargs): Returns a concise list or a detailed view of a cluster. >>- svcinfo -- -- lscluster -- --> >-- It is wrapper for CLI "svcinfo lscluster". Parameters: filtervalue: nohdr: bytes: delim: filtervalue_0: cluster_id_or_name:''' self.assertEqual(expect_, cmd.__doc__) cmd = res.svctask.mkhost self.assertEqual(ucs.SVCCommand, type(cmd)) self.assertTrue(ucr.is_svc_response(cmd.resp_helper)) cmd = res.for_test2.cmd1 self.assertEqual(ucs.CLICommand, type(cmd)) self.assertEqual(None, cmd.resp_helper) self.assertEqual(['optiontype', 'optiontype_0', 'force', 'noforce'], list(cmd.params.keys())) self.assertEqual( 'for_test2 cmd1 --optiontype?? o1', cmd(nothing, { 'optiontype': 'o1', 'xsf.check_return_code': False })) self.assertEqual( 'for_test2 cmd1 --optiontype tryonce', cmd(nothing, { 'optiontype_0': 'tryonce', 'xsf.check_return_code': False })) self.assertRaisesEx(ucs.CLISpecError, cmd, nothing, dict(optiontype_0='bad')) cmd = res.for_test3 self.assertEqual(ucs.CLICommand, type(cmd)) self.assertEqual(None, cmd.resp_helper) self.assertEqual(['network', 'interface', 'g', 'force'], list(cmd.params.keys())) self.assertEqual( 'for_test3 n1 inf1 -g g1 --force %s' % ucs.show_return_code_if_fail(), cmd(nothing, dict(network='n1', interface='inf1', g='g1', force=None))) self.assertRaisesEx(ucs.CLISpecError, cmd, nothing, dict(interface='inf1', g='g1'))
def add_cmd(self, realname, description='', resp_helper=None): realname = strip_name(realname) obj = SVCCommand() if is_svc_response(resp_helper) else CLICommand() obj.name = resolve_key_conflict(self.cmds, canonical_name(realname)) pn = '' try: pn = getattr(self, 'realname') except AttributeError: pass obj.realname = pn + ' ' + realname if pn else realname obj.description = description obj.resp_helper = resp_helper self.cmds[obj.name] = obj return obj
def test_cmd_input(self): res = ucs.parse(getpath('../tests/response/svc-6.3.xml')) cmd = res.svcinfo.lsnode self.assertEqual(ucs.SVCCommand, type(cmd)) self.assertTrue(ucr.is_svc_response(cmd.resp_helper)) self.assertEqual('svcinfo lsnode -delim , 1 %s' % ucs.show_return_code_if_fail(), cmd(nothing, dict(object='1'))) self.assertEqual('svcinfo lsnode -delim , 1 %s' % ucs.show_return_code_if_fail(), cmd(nothing, {'object': '1', 'xsf.ignore': '1'})) self.assertEqual('svcinfo lsnode -delim , 1 %s' % ucs.show_return_code_if_fail(), cmd(nothing, {'object': '1', 'badparam': '1', 'xsf.flexible': True})) self.assertRaisesEx(ucs.CLISpecError, cmd, nothing, dict(object='1', badparam='1'))