本文整理汇总了Python中azure.cli.application.Application.execute方法的典型用法代码示例。如果您正苦于以下问题:Python Application.execute方法的具体用法?Python Application.execute怎么用?Python Application.execute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类azure.cli.application.Application
的用法示例。
在下文中一共展示了Application.execute方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_help_group_children
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_group_children(self):
app = Application(Configuration([]))
def test_handler():
pass
def test_handler2():
pass
command = CliCommand('group1 group3 n1', test_handler)
command.add_argument('foobar', '--foobar', '-fb', required=False)
command.add_argument('foobar2', '--foobar2', '-fb2', required=True)
command2 = CliCommand('group1 group2 n1', test_handler2)
command2.add_argument('foobar', '--foobar', '-fb', required=False)
command2.add_argument('foobar2', '--foobar2', '-fb2', required=True)
cmd_table = {'group1 group3 n1': command, 'group1 group2 n1': command2}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('group1 -h'.split())
s = '\nGroup\n az group1\n\nSubgroups:\n group2\n group3\n\n'
self.assertEqual(s, io.getvalue())
示例2: test_help_with_param_specified
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_with_param_specified(self, _):
app = Application(Configuration([]))
def test_handler():
pass
command = CliCommand('n1', test_handler)
command.add_argument('arg', '--arg', '-a', required=False)
command.add_argument('b', '-b', required=False)
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('n1 --arg foo -h'.split())
s = """
Command
az n1
Arguments
--arg -a
-b
Global Arguments
--help -h: Show this help message and exit.
"""
self.assertEqual(s, io.getvalue())
示例3: test_help_params_documentations
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_params_documentations(self, _):
app = Application(Configuration([]))
def test_handler():
pass
command = CliCommand('n1', test_handler)
command.add_argument('foobar', '--foobar', '-fb', required=False)
command.add_argument('foobar2', '--foobar2', '-fb2', required=True)
command.add_argument('foobar3', '--foobar3', '-fb3', required=False, help='the foobar3')
command.help = """
parameters:
- name: --foobar -fb
type: string
required: false
short-summary: one line partial sentence
long-summary: text, markdown, etc.
populator-commands:
- az vm list
- default
- name: --foobar2 -fb2
type: string
required: true
short-summary: one line partial sentence
long-summary: paragraph(s)
"""
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('n1 -h'.split())
s = """
Command
az n1
Arguments
--foobar2 -fb2 [Required]: One line partial sentence.
Paragraph(s).
--foobar -fb : One line partial sentence.
Text, markdown, etc.
Values from: az vm list, default.
--foobar3 -fb3 : The foobar3.
Global Arguments
--help -h : Show this help message and exit.
"""
self.assertEqual(s, io.getvalue())
示例4: test_help_plain_short_description
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_plain_short_description(self):
def test_handler():
pass
command = CliCommand('n1', test_handler, description='the description')
command.add_argument('arg', '--arg', '-a', required=False)
command.add_argument('b', '-b', required=False)
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('n1 -h'.split())
self.assertEqual(True, 'n1: The description.' in io.getvalue())
示例5: test_help_long_description_and_short_description
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_long_description_and_short_description(self):
def test_handler():
pass
command = CliCommand('n1', test_handler, description='short description')
command.add_argument('arg', '--arg', '-a', required=False)
command.add_argument('b', '-b', required=False)
command.help = 'long description'
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('n1 -h'.split())
self.assertEqual(True, io.getvalue().startswith('\nCommand\n az n1: Short description.\n Long description.')) # pylint: disable=line-too-long
示例6: test_help_global_params
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_global_params(self, mock_register_extensions, _):
def register_globals(global_group):
global_group.add_argument('--query2', dest='_jmespath_query', metavar='JMESPATH',
help='JMESPath query string. See http://jmespath.org/ '
'for more information and examples.')
mock_register_extensions.return_value = None
mock_register_extensions.side_effect = lambda app: \
app._event_handlers[app.GLOBAL_PARSER_CREATED].append(register_globals) # pylint: disable=protected-access
def test_handler():
pass
command = CliCommand('n1', test_handler)
command.add_argument('arg', '--arg', '-a', required=False)
command.add_argument('b', '-b', required=False)
command.help = """
long-summary: |
line1
line2
"""
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('n1 -h'.split())
s = """
Command
az n1
Line1
line2.
Arguments
--arg -a
-b
Global Arguments
--help -h: Show this help message and exit.
--query2 : JMESPath query string. See http://jmespath.org/ for more information and examples.
"""
self.assertEqual(s, io.getvalue())
示例7: test_help_param
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_param(self):
def test_handler():
pass
command = CliCommand('n1', test_handler)
command.add_argument('arg', '--arg', '-a', required=False)
command.add_argument('b', '-b', required=False)
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application()
app.initialize(config)
with self.assertRaises(SystemExit):
app.execute('n1 -h'.split())
with self.assertRaises(SystemExit):
app.execute('n1 --help'.split())
示例8: test_help_long_description_multi_line
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_long_description_multi_line(self):
def test_handler():
pass
command = CliCommand('n1', test_handler)
command.add_argument('arg', '--arg', '-a', required=False)
command.add_argument('b', '-b', required=False)
command.help = """
long-summary: |
line1
line2
"""
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('n1 -h'.split())
self.assertEqual(True, io.getvalue().startswith('\nCommand\n az n1\n Line1\n line2.')) # pylint: disable=line-too-long
示例9: test_list_value_parameter
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_list_value_parameter(self):
hellos = []
def handler(args):
hellos.append(args)
command = CliCommand('test command', handler)
command.add_argument('hello', '--hello', nargs='+', action=IterateAction)
command.add_argument('something', '--something')
cmd_table = {'test command': command}
argv = 'az test command --hello world sir --something else'.split()
config = Configuration(argv)
config.get_command_table = lambda: cmd_table
application = Application(config)
application.execute(argv[1:])
self.assertEqual(2, len(hellos))
self.assertEqual(hellos[0]['hello'], 'world')
self.assertEqual(hellos[0]['something'], 'else')
self.assertEqual(hellos[1]['hello'], 'sir')
self.assertEqual(hellos[1]['something'], 'else')
示例10: test_generic_update_empty_nodes
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_generic_update_empty_nodes(self):
my_obj = {
'prop': None,
'list': [],
'dict': {
'dict2': None
},
'dict3': {}
}
def my_get():
return my_obj
def my_set(**kwargs): #pylint:disable=unused-argument
return my_obj
config = Configuration([])
app = Application(config)
register_generic_update('gencommand', my_get, my_set)
# add to prop
app.execute('gencommand --add prop a=b'.split())
self.assertEqual(my_obj['prop'][0]['a'], 'b', 'verify object added to null list')
self.assertEqual(len(my_obj['prop'][0]), 1, 'verify only one object added to null list')
#add to list
app.execute('gencommand --add list c=d'.split())
self.assertEqual(my_obj['list'][0]['c'], 'd', 'verify object added to empty list')
self.assertEqual(len(my_obj['list']), 1, 'verify only one object added to empty list')
# set dict2
app.execute('gencommand --set dict.dict2.e=f'.split())
self.assertEqual(my_obj['dict']['dict2']['e'], 'f', 'verify object added to null dict')
self.assertEqual(len(my_obj['dict']['dict2']), 1,
'verify only one object added to null dict')
#set dict3
app.execute('gencommand --set dict3.g=h'.split())
self.assertEqual(my_obj['dict3']['g'], 'h', 'verify object added to empty dict')
self.assertEqual(len(my_obj['dict3']), 1, 'verify only one object added to empty dict')
示例11: test_help_extra_missing_params
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_extra_missing_params(self):
app = Application(Configuration([]))
def test_handler(foobar2, foobar=None): # pylint: disable=unused-argument
pass
command = CliCommand('n1', test_handler)
command.add_argument('foobar', '--foobar', '-fb', required=False)
command.add_argument('foobar2', '--foobar2', '-fb2', required=True)
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
# work around an argparse behavior where output is not printed and SystemExit
# is not raised on Python 2.7.9
if sys.version_info < (2, 7, 10):
try:
app.execute('n1 -fb a --foobar value'.split())
except SystemExit:
pass
try:
app.execute('n1 -fb a --foobar2 value --foobar3 extra'.split())
except SystemExit:
pass
else:
with self.assertRaises(SystemExit):
app.execute('n1 -fb a --foobar value'.split())
with self.assertRaises(SystemExit):
app.execute('n1 -fb a --foobar2 value --foobar3 extra'.split())
self.assertTrue('required' in io.getvalue()
and '--foobar/-fb' not in io.getvalue()
and '--foobar2/-fb2' in io.getvalue()
and 'unrecognized arguments: --foobar3 extra' in io.getvalue())
示例12: test_help_group_help
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_group_help(self):
app = Application(Configuration([]))
def test_handler():
pass
azure.cli.help_files.helps['test_group1 test_group2'] = """
type: group
short-summary: this module does xyz one-line or so
long-summary: |
this module.... kjsdflkj... klsfkj paragraph1
this module.... kjsdflkj... klsfkj paragraph2
examples:
- name: foo example
text: example details
"""
command = CliCommand('test_group1 test_group2 n1', test_handler)
command.add_argument('foobar', '--foobar', '-fb', required=False)
command.add_argument('foobar2', '--foobar2', '-fb2', required=True)
command.help = """
short-summary: this module does xyz one-line or so
long-summary: |
this module.... kjsdflkj... klsfkj paragraph1
this module.... kjsdflkj... klsfkj paragraph2
parameters:
- name: --foobar -fb
type: string
required: false
short-summary: one line partial sentence
long-summary: text, markdown, etc.
populator-commands:
- az vm list
- default
- name: --foobar2 -fb2
type: string
required: true
short-summary: one line partial sentence
long-summary: paragraph(s)
examples:
- name: foo example
text: example details
"""
cmd_table = {'test_group1 test_group2 n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('test_group1 test_group2 --help'.split())
s = """
Group
az test_group1 test_group2: This module does xyz one-line or so.
This module.... kjsdflkj... klsfkj paragraph1
this module.... kjsdflkj... klsfkj paragraph2.
Commands:
n1: This module does xyz one-line or so.
Examples
foo example
example details
"""
self.assertEqual(s, io.getvalue())
del azure.cli.help_files.helps['test_group1 test_group2']
示例13: test_help_full_documentations
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_help_full_documentations(self, _):
app = Application(Configuration([]))
def test_handler():
pass
command = CliCommand('n1', test_handler)
command.add_argument('foobar', '--foobar', '-fb', required=False)
command.add_argument('foobar2', '--foobar2', '-fb2', required=True)
command.help = """
short-summary: this module does xyz one-line or so
long-summary: |
this module.... kjsdflkj... klsfkj paragraph1
this module.... kjsdflkj... klsfkj paragraph2
parameters:
- name: --foobar -fb
type: string
required: false
short-summary: one line partial sentence
long-summary: text, markdown, etc.
populator-commands:
- az vm list
- default
- name: --foobar2 -fb2
type: string
required: true
short-summary: one line partial sentence
long-summary: paragraph(s)
examples:
- name: foo example
text: example details
"""
cmd_table = {'n1': command}
config = Configuration([])
config.get_command_table = lambda: cmd_table
app = Application(config)
with self.assertRaises(SystemExit):
app.execute('n1 -h'.split())
s = """
Command
az n1: This module does xyz one-line or so.
This module.... kjsdflkj... klsfkj paragraph1
this module.... kjsdflkj... klsfkj paragraph2.
Arguments
--foobar2 -fb2 [Required]: One line partial sentence.
Paragraph(s).
--foobar -fb : One line partial sentence.
Text, markdown, etc.
Values from: az vm list, default.
Global Arguments
--help -h : Show this help message and exit.
Examples
foo example
example details
"""
self.assertEqual(s, io.getvalue())
示例14: _process_null_values
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
if not all_match:
test_list.pop()
else:
return test_entry
return '_ROOT_'
def _process_null_values(dict_):
if hide_nulls:
null_values = [x for x in dict_.keys() if dict_[x] is None]
for key in null_values:
dict_.pop(key)
def _dashed_to_camel(string):
return string.replace('-', '_')
parser = argparse.ArgumentParser(description='Command Table Parser')
parser.add_argument('--commands', metavar='N', nargs='+', help='Filter by first level command (OR)')
parser.add_argument('--params', metavar='N', nargs='+', help='Filter by parameters (OR)')
parser.add_argument('--hide-nulls', action='store_true', default=False, help='Show null entries')
args = parser.parse_args()
cmd_set_names = args.commands
param_names = [_dashed_to_camel(x) for x in args.params or []]
hide_nulls = args.hide_nulls
PRIMITIVES = (str, int, bool, float)
IGNORE_ARGS = ['help', 'help_file', 'base_type']
APPLICATION = Application(Configuration([]))
APPLICATION.register(Application.COMMAND_TABLE_LOADED, _dump_command_table)
APPLICATION.execute([''])
示例15: test_generic_update
# 需要导入模块: from azure.cli.application import Application [as 别名]
# 或者: from azure.cli.application.Application import execute [as 别名]
def test_generic_update(self):
my_obj = {
'prop': 'val',
'list': [
'a',
'b',
['c', {'d': 'e'}]
]
}
def my_get():
return my_obj
def my_set(**kwargs): #pylint:disable=unused-argument
return my_obj
config = Configuration([])
app = Application(config)
register_generic_update('gencommand', my_get, my_set)
app.execute('gencommand --set prop=val2'.split())
self.assertEqual(my_obj['prop'], 'val2', 'set simple property')
app.execute('gencommand --set prop=val3'.split())
self.assertEqual(my_obj['prop'], 'val3', 'set simple property again')
app.execute('gencommand --set list[0]=f'.split())
self.assertEqual(my_obj['list'][0], 'f', 'set simple list element')
app.execute('gencommand --set list[2][0]=g'.split())
self.assertEqual(my_obj['list'][2][0], 'g', 'set nested list element')
app.execute('gencommand --set list[2][1].d=h'.split())
self.assertEqual(my_obj['list'][2][1]['d'], 'h', 'set nested dict element')
app.execute('gencommand --set list[0]={} list[0].foo=bar'.split())
self.assertEqual(my_obj['list'][0]['foo'], 'bar', 'replace nested scalar with new dict')
app.execute('gencommand --set list[1]=[] --add list[1] key1=value1'
' --set list[1][0].key2=value2'.split())
self.assertEqual(my_obj['list'][1][0]['key1'], 'value1',
'replace nested scalar with new list with one value')
self.assertEqual(my_obj['list'][1][0]['key2'], 'value2',
'add a second value to the new list')
app.execute('gencommand --add list i=j k=l'.split())
self.assertEqual(my_obj['list'][-1]['k'], 'l',
'add multiple values to a list at once (verify last element)')
self.assertEqual(my_obj['list'][-1]['i'], 'j',
'add multiple values to a list at once (verify first element)')
app.execute('gencommand --add list[-2] prop2=val2'.split())
self.assertEqual(my_obj['list'][-2][-1]['prop2'], 'val2', 'add to list')
app.execute('gencommand --add list[-2] prop3=val3'.split())
self.assertEqual(my_obj['list'][-2][-1]['prop3'], 'val3',
'add to list again, should make seperate list elements')
self.assertEqual(len(my_obj['list']), 4, 'pre-verify length of list')
app.execute('gencommand --remove list -2'.split())
self.assertEqual(len(my_obj['list']), 3, 'verify one item removed')
app.execute('gencommand --remove list -1'.split())
self.assertEqual(len(my_obj['list']), 2, 'verify another item removed')
self.assertEqual('key1' in my_obj['list'][1][0], True, 'verify dict item')
app.execute('gencommand --remove list[1][0].key1'.split())
self.assertEqual('key1' not in my_obj['list'][1][0], True,
'verify dict item can be removed')