Best Python code snippet using autotest_python
site_job.py
Source:site_job.py  
...46        # creating the new control file47        #48        if (self.command_line_options.template and49            self.command_line_options.control_file):50            generated_control_file = self._generate_control_file()51            self.data['control_file'] = open(generated_control_file).read()52        if self.command_line_options.koji_pkg:53            if self.koji_client is None:54                self.koji_client = virt_utils.KojiClient()55        return (self.command_line_options, self.command_line_leftover)56    def _process_options(self):57        '''58        Process all options given on command line59        '''60        all_options_valid = True61        self._set_koji_tag()62        if not self._check_koji_packages():63            all_options_valid = False64        return all_options_valid65    def _set_koji_tag(self):66        '''67        Sets the default koji tag.68        Configuration item on file is: koji_tag69        '''70        if self.command_line_options.koji_tag is not None:71            virt_utils.set_default_koji_tag(self.command_line_options.koji_tag)72    def _check_koji_packages(self):73        '''74        Check if packages specification are valid and exist on koji/brew75        Configuration item on file is: koji_pkgs76        '''77        all_packages_found = True78        if self.command_line_options.koji_pkg is not None:79            logging.debug('Checking koji packages specification')80            for pkg_spec_text in self.command_line_options.koji_pkg:81                pkg_spec = virt_utils.KojiPkgSpec(pkg_spec_text)82                if not (pkg_spec.is_valid() and83                        self.koji_client.is_pkg_valid(pkg_spec)):84                    logging.error('Koji package spec is not valid, skipping: '85                                  '%s' % pkg_spec)86                    all_packages_found = False87                else:88                    rpms = self.koji_client.get_pkg_rpm_info(89                        pkg_spec,90                        self.command_line_options.koji_arch)91                    for subpackage in pkg_spec.subpackages:92                        if subpackage not in [rpm['name'] for rpm in rpms]:93                            logging.error('Package specified but not found in '94                                          'koji: %s' % subpackage)95                            all_packages_found = False96                    rpms = ", ".join(rpm['nvr'] for rpm in rpms)97                    logging.debug('Koji package spec is valid')98                    logging.debug('Koji packages to be fetched and installed: '99                                  '%s' % rpms)100        return all_packages_found101    def _generate_job_config(self):102        '''103        Converts all options given on the command line to config file syntax104        '''105        extra = []106        if self.command_line_options.extra_cartesian_config:107            extra += self.command_line_options.extra_cartesian_config108        if self.command_line_options.koji_tag:109            extra.append("koji_tag = %s" % self.command_line_options.koji_tag)110        if self.command_line_options.koji_pkg:111            koji_pkgs = []112            for koji_pkg in self.command_line_options.koji_pkg:113                koji_pkgs.append('"%s"' % koji_pkg)114            extra.append("koji_pkgs = [%s]" % ', '.join(koji_pkgs))115        # add quotes...116        extra = ["'%s'" % e for e in extra]117        # ... and return as string that will be eval'd as a Python list118        return "[%s]" % ', '.join(extra)119    def _generate_control_file(self):120        '''121        Generates a controle file from a template122        '''123        custom_job_cfg = self._generate_job_config()124        input_file = self.command_line_options.control_file125        logging.debug('Generating control file from template: %s' % input_file)126        template = string.Template(open(input_file).read())127        output_fd, path = tempfile.mkstemp(prefix='atest_control_', dir='/tmp')128        logging.debug('Generated control file to be saved at: %s' % path)129        parameters_dict = {"custom_job_cfg": custom_job_cfg}130        control_file_text = template.substitute(parameters_dict)131        os.write(output_fd, control_file_text)132        os.close(output_fd)133        return path...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!!
