Best Python code snippet using autotest_python
abort_suite.py
Source:abort_suite.py
1#!/usr/bin/python -t2#3# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.4# Use of this source code is governed by a BSD-style license that can be5# found in the LICENSE file.6"""7Usage: ./abort_suite.py [-i and -s you passed to run_suite.py]8This code exists to allow buildbot to abort a HWTest run if another part of9the build fails while HWTesting is going on. If we're going to fail the10build anyway, there's no point in continuing to run tests.11One can also pass just the build version to -i, to abort all boards running the12suite against that version. ie. |./abort_suite.py -i R28-3993.0.0 -s dummy|13would abort all boards running dummy on R28-3993.0.0.14To achieve better performance, this script aborts suite jobs and relies on15autotest scheduler to aborts its subjobs instead of directly aborting subjobs.16So only synchronous suites is supported.17"""18import argparse19import getpass20import logging21import os22import sys23import common24from autotest_lib.server import frontend25from autotest_lib.server import utils26LOG_NAME_TEMPLATE = 'abort_suite-%s.log'27SUITE_JOB_NAME_TEMPLATE = '%s-test_suites/control.%s'28def parse_args():29 """30 Parse the arguments to this script.31 @return The arguments to this script.32 """33 parser = argparse.ArgumentParser()34 parser.add_argument('-s', '--suite_name', dest='name')35 parser.add_argument('-i', '--build', dest='build')36 return parser.parse_args()37def abort_suites(afe, substring):38 """39 Abort the suite.40 This method aborts the suite jobs whose name contains |substring|.41 Aborting a suite job will lead to all its child jobs to be aborted42 by autotest scheduler.43 @param afe: An instance of frontend.AFE to make RPCs with.44 @param substring: A string used to search for the jobs (case insensitive45 matching).46 """47 hqe_info = afe.run('abort_host_queue_entries',48 job__name__icontains=substring, job__owner=getpass.getuser(),49 job__parent_job__isnull=True)50 if hqe_info:51 logging.info('The following suites have been aborted:\n%s', hqe_info)52 else:53 logging.info('No suites have been aborted. The suite jobs may have '54 'already been aborted/completed? Note this script does '55 'not support asynchronus suites.')56def main():57 """Main."""58 args = parse_args()59 log_dir = os.path.join(common.autotest_dir, 'logs')60 if not os.path.exists(log_dir):61 os.makedirs(log_dir)62 log_name = LOG_NAME_TEMPLATE % args.build.replace('/', '_')63 log_name = os.path.join(log_dir, log_name)64 utils.setup_logging(logfile=log_name, prefix=True)65 afe = frontend.AFE()66 name = SUITE_JOB_NAME_TEMPLATE % (args.build, args.name)67 abort_suites(afe, name)68 return 069if __name__ == '__main__':...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!