Пример #1
0
    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'))