Best Python code snippet using avocado_python
jobs.py
Source:jobs.py
...59 for line in astring.iter_tabular_output(test_matrix,60 header=header,61 strip=True):62 LOG_UI.debug(line)63 def _save_stream_to_file(self, stream, filename):64 """Save stream to a file.65 Directory must exists before calling this function.66 """67 dirname = os.path.dirname(filename)68 os.makedirs(dirname, exist_ok=True)69 with open(filename, 'ab') as output_file:70 output_file.write(stream)71 def configure(self, parser):72 """73 Add the subparser for the assets action.74 :param parser: The Avocado command line application parser75 :type parser: :class:`avocado.core.parser.ArgumentParser`76 """77 parser = super(Jobs, self).configure(parser)78 subcommands = parser.add_subparsers(dest='jobs_subcommand',79 metavar='sub-command')80 subcommands.required = True81 help_msg = 'List all known jobs by Avocado'82 subcommands.add_parser('list', help=help_msg)83 help_msg = ('Show details about a specific job. When passing a Job '84 'ID, you can use any Job Reference (job_id, "latest", '85 'or job results path).')86 show_parser = subcommands.add_parser('show', help=help_msg)87 settings.register_option(section='jobs.show',88 key='job_id',89 help_msg='JOB id',90 metavar='JOBID',91 default='latest',92 nargs='?',93 positional_arg=True,94 parser=show_parser)95 help_msg = ('Download output files generated by tests on '96 'AVOCADO_TEST_OUTPUT_DIR')97 output_files_parser = subcommands.add_parser('get-output-files',98 help=help_msg)99 settings.register_option(section='jobs.get.output_files',100 key='job_id',101 help_msg='JOB id',102 metavar='JOBID',103 default=None,104 positional_arg=True,105 parser=output_files_parser)106 settings.register_option(section='jobs.get.output_files',107 key='destination',108 help_msg='Destination path',109 metavar='DESTINATION',110 default=None,111 positional_arg=True,112 parser=output_files_parser)113 def handle_list_command(self, jobs_results):114 """Called when 'avocado jobs list' command is executed."""115 for filename in jobs_results.values():116 with open(filename, 'r') as fp:117 job = json.load(fp)118 try:119 started_ts = job['tests'][0]['start']120 started = datetime.fromtimestamp(started_ts)121 except IndexError:122 continue123 LOG_UI.info("%-40s %-26s %3s (%s/%s/%s/%s)",124 job['job_id'],125 str(started),126 job['total'],127 job['pass'],128 job['skip'],129 job['errors'],130 job['failures'])131 return exit_codes.AVOCADO_ALL_OK132 def _download_tests(self, tests, destination, job_id, spawner):133 for test in tests:134 test_id = test.get('id')135 LOG_UI.info("Downloading files for test %s", test_id)136 try:137 files_buffers = spawner().stream_output(job_id, test_id)138 for filename, stream in files_buffers:139 dest = os.path.join(destination,140 test_id.replace('/', '_'),141 filename)142 self._save_stream_to_file(stream, dest)143 except SpawnerException as ex:144 LOG_UI.error("Error: Failed to download: %s. Exiting...", ex)145 return exit_codes.AVOCADO_GENERIC_CRASH146 return exit_codes.AVOCADO_ALL_OK147 def handle_output_files_command(self, config):148 """Called when 'avocado jobs get-output-files' command is executed."""149 job_id = config.get('jobs.get.output_files.job_id')150 destination = config.get('jobs.get.output_files.destination')151 results_dir = get_job_results_dir(job_id)152 results_file = os.path.join(results_dir, 'results.json')153 config_file = os.path.join(results_dir, 'jobdata/args.json')154 try:155 config_data = self._get_data_from_file(config_file)156 results_data = self._get_data_from_file(results_file)...
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!!