tools/automation/verify/verify_load_all.py (19 lines of code) (raw):

# -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- """Verify all commands and arguments are loaded without errors. """ FAILED_TO_LOAD = [] EXTENSION_FAILURE_EXCLUSIONS = [] def init(root): parser = root.add_parser('load-all', help='Load the full command table, command arguments and help.') parser.set_defaults(func=verify_load_all) def verify_load_all(_): from azure.cli.core import get_default_cli, EVENT_FAILED_EXTENSION_LOAD from azure.cli.core.file_util import get_all_help, create_invoker_and_load_cmds_and_args print('Loading all commands, arguments, and help...') # setup CLI to enable command loader and register event az_cli = get_default_cli() az_cli.register_event(EVENT_FAILED_EXTENSION_LOAD, extension_failed_load_handler) # load commands, args, and help create_invoker_and_load_cmds_and_args(az_cli) loaded_help = get_all_help(az_cli) # verify each installed extension is properly loaded if not FAILED_TO_LOAD or set(FAILED_TO_LOAD).issubset(set(EXTENSION_FAILURE_EXCLUSIONS)): print('Everything loaded successfully.') else: raise Exception('Exceptions failed to load: {}'.format(', '.join(FAILED_TO_LOAD))) def extension_failed_load_handler(_, **kwargs): FAILED_TO_LOAD.append(kwargs.get('extension_name'))