How to use _keyval_path method in autotest

Best Python code snippet using autotest_python

agent_task.py

Source:agent_task.py Github

copy

Full Screen

...419 """AgentTask mixin providing functionality to help with job keyval files."""420 _KEYVAL_FILE = 'keyval'421 def _format_keyval(self, key, value):422 return '%s=%s' % (key, value)423 def _keyval_path(self):424 """Subclasses must override this"""425 raise NotImplementedError426 def _write_keyval_after_job(self, field, value):427 assert self.monitor428 if not self.monitor.has_process():429 return430 self._drone_manager.write_lines_to_file(431 self._keyval_path(), [self._format_keyval(field, value)],432 paired_with_process=self.monitor.get_process())433 def _job_queued_keyval(self, job):434 return 'job_queued', int(time.mktime(job.created_on.timetuple()))435 def _write_job_finished(self):436 self._write_keyval_after_job("job_finished", int(time.time()))437 def _write_keyvals_before_job_helper(self, keyval_dict, keyval_path):438 keyval_contents = '\n'.join(self._format_keyval(key, value)439 for key, value in keyval_dict.iteritems())440 # always end with a newline to allow additional keyvals to be written441 keyval_contents += '\n'442 self._drone_manager.attach_file_to_execution(self._working_directory(),443 keyval_contents,444 file_path=keyval_path)445 def _write_keyvals_before_job(self, keyval_dict):446 self._write_keyvals_before_job_helper(keyval_dict, self._keyval_path())447 def _write_host_keyvals(self, host):448 keyval_path = os.path.join(self._working_directory(), 'host_keyvals',449 host.hostname)450 platform, all_labels = host.platform_and_labels()451 all_labels = [ urllib.quote(label) for label in all_labels ]452 keyval_dict = dict(platform=platform, labels=','.join(all_labels))453 self._write_keyvals_before_job_helper(keyval_dict, keyval_path)454class SpecialAgentTask(AgentTask, TaskWithJobKeyvals):455 """456 Subclass for AgentTasks that correspond to a SpecialTask entry in the DB.457 """458 TASK_TYPE = None459 host = None460 queue_entry = None461 def __init__(self, task, extra_command_args):462 super(SpecialAgentTask, self).__init__()463 assert self.TASK_TYPE is not None, 'self.TASK_TYPE must be overridden'464 self.host = rdb_lib.get_hosts([task.host.id])[0]465 self.host.dbg_str = 'Task: %s' % str(task)466 self.queue_entry = None467 if task.queue_entry:468 self.queue_entry = scheduler_models.HostQueueEntry(469 id=task.queue_entry.id)470 self.host.dbg_str += self.queue_entry.get_dbg_str()471 self.task = task472 self._extra_command_args = extra_command_args473 self.host.metadata = self.get_metadata()474 def get_metadata(self):475 """Get a dictionary that contains task information.476 The return value is a dictionary that includes task information like id,477 name and related job information. The value will be stored in metadata478 database.479 @return: A dictionary containing the task id, name and related job id.480 If some attributes are failed to be accessed, an empty481 dictionary will be returned, and error will be logged.482 """483 try:484 metadata = {'task_id':self.task.id, 'task_name':self.task.task,485 'hostname':self.task.host.hostname}486 if self.task.queue_entry:487 job = self.task.queue_entry.job488 metadata.update(489 scheduler_models.get_job_metadata(job))490 return metadata491 except AttributeError as e:492 logging.error('Task has missing attribute: %s', e)493 return {}494 def _keyval_path(self):495 return os.path.join(self._working_directory(), self._KEYVAL_FILE)496 def _command_line(self):497 return autoserv_utils._autoserv_command_line(self.host.hostname,498 self._extra_command_args,499 queue_entry=self.queue_entry,500 in_lab=True)501 def _working_directory(self):502 return self.task.execution_path()503 @property504 def owner_username(self):505 if self.task.requested_by:506 return self.task.requested_by.login507 return None508 def prolog(self):...

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run autotest automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful