def execute(args): from .main import run_tests validate_usage(args) current_profile = get_current_profile(args) test_index = get_test_index(args) modules = [] if args.ci: # CI Mode runs specific modules output('Running in CI Mode') selected_modules = [('All modules', 'azure.cli', 'azure.cli'), ('CLI Linter', 'automation.cli_linter', 'automation.cli_linter')] elif not (args.tests or args.src_file): # Default is to run with modules (possibly via environment variable) if os.environ.get('AZURE_CLI_TEST_MODULES', None): display('Test modules list is parsed from environment variable AZURE_CLI_TEST_MODULES.') modules = [m.strip() for m in os.environ.get('AZURE_CLI_TEST_MODULES').split(',')] selected_modules = filter_user_selected_modules_with_tests(modules, args.profile) if not selected_modules: display('\nNo tests selected.') sys.exit(1) else: # Otherwise run specific tests args.tests = args.tests or [] # Add any tests from file if args.src_file: with open(args.src_file, 'r') as f: for line in f.readlines(): line = line.strip('\r\n') line = line.strip('\n') if line not in args.tests: args.tests.append(line) test_paths = [] selected_modules = [] for t in args.tests: try: test_path = os.path.normpath(test_index[t]) mod_name = extract_module_name(test_path) test_paths.append(test_path) if mod_name not in selected_modules: selected_modules.append(mod_name) except KeyError: display("Test '{}' not found.".format(t)) continue selected_modules = filter_user_selected_modules_with_tests(selected_modules, args.profile) args.tests = test_paths success, failed_tests = run_tests(selected_modules, parallel=args.parallel, run_live=args.live, tests=args.tests) # if args.dest_file: # with open(args.dest_file, 'w') as f: # for failed_test in failed_tests: # f.write(failed_test + '\n') sys.exit(0 if success else 1)
def execute(args): from .main import run_tests validate_usage(args) current_profile = get_current_profile(args) test_index = get_test_index(args) modules = [] if args.ci: # CI Mode runs specific modules output('Running in CI Mode') selected_modules = [('All modules', 'azure.cli', 'azure.cli'), ('CLI Linter', 'automation.cli_linter', 'automation.cli_linter')] elif not (args.tests or args.src_file): # Default is to run with modules (possibly via environment variable) if os.environ.get('AZURE_CLI_TEST_MODULES', None): display( 'Test modules list is parsed from environment variable AZURE_CLI_TEST_MODULES.' ) modules = [ m.strip() for m in os.environ.get('AZURE_CLI_TEST_MODULES').split(',') ] selected_modules = filter_user_selected_modules_with_tests( modules, args.profile) if not selected_modules: display('\nNo tests selected.') sys.exit(1) else: # Otherwise run specific tests args.tests = args.tests or [] # Add any tests from file if args.src_file: with open(args.src_file, 'r') as f: for line in f.readlines(): line = line.strip('\r\n') line = line.strip('\n') if line not in args.tests: args.tests.append(line) test_paths = [] selected_modules = [] for t in args.tests: try: test_path = os.path.normpath(test_index[t]) mod_name = extract_module_name(test_path) test_paths.append(test_path) if mod_name not in selected_modules: selected_modules.append(mod_name) except KeyError: display("Test '{}' not found.".format(t)) continue selected_modules = filter_user_selected_modules_with_tests( selected_modules, args.profile) args.tests = test_paths success, failed_tests = run_tests(selected_modules, parallel=args.parallel, run_live=args.live, tests=args.tests) # if args.dest_file: # with open(args.dest_file, 'w') as f: # for failed_test in failed_tests: # f.write(failed_test + '\n') sys.exit(0 if success else 1)