Best Python code snippet using autotest_python
utils_koji.py
Source:utils_koji.py  
...315            return self.config_options['pkgurl']316        else:317            return "%s/%s" % (self.config_options['topurl'],318                              'packages')319    def get_scratch_base_url(self):320        '''321        Gets the base url for scratch builds in Koji322        '''323        one_level_up = os.path.dirname(self.get_pkg_base_url())324        return "%s/%s" % (one_level_up, 'scratch')325    def get_pkg_urls(self, pkg, arch=None):326        '''327        Gets the urls for the packages specified in pkg328        :type pkg: KojiPkgSpec329        :param pkg: a package specification330        :type arch: string331        :param arch: packages built for this architecture, but also including332                architecture independent (noarch) packages333        '''334        info = self.get_pkg_info(pkg)335        rpms = self.get_pkg_rpm_info(pkg, arch)336        rpm_urls = []337        base_url = self.get_pkg_base_url()338        for rpm in rpms:339            rpm_name = koji.pathinfo.rpm(rpm)340            url = ("%s/%s/%s/%s/%s" % (base_url,341                                       info['package_name'],342                                       info['version'], info['release'],343                                       rpm_name))344            rpm_urls.append(url)345        return rpm_urls346    def get_pkgs(self, pkg, dst_dir, arch=None):347        '''348        Download the packages349        :type pkg: KojiPkgSpec350        :param pkg: a package specification351        :type dst_dir: string352        :param dst_dir: the destination directory, where the downloaded353                packages will be saved on354        :type arch: string355        :param arch: packages built for this architecture, but also including356                architecture independent (noarch) packages357        '''358        rpm_urls = self.get_pkg_urls(pkg, arch)359        for url in rpm_urls:360            utils.get_file(url,361                           os.path.join(dst_dir, os.path.basename(url)))362    def get_scratch_pkg_urls(self, pkg, arch=None):363        '''364        Gets the urls for the scratch packages specified in pkg365        :type pkg: KojiScratchPkgSpec366        :param pkg: a scratch package specification367        :type arch: string368        :param arch: packages built for this architecture, but also including369                architecture independent (noarch) packages370        '''371        rpm_urls = []372        if arch is None:373            arch = utils.get_arch()374        arches = [arch, 'noarch']375        index_url = "%s/%s/task_%s" % (self.get_scratch_base_url(),376                                       pkg.user,377                                       pkg.task)378        index_parser = KojiDirIndexParser()379        index_parser.feed(urllib.urlopen(index_url).read())380        if pkg.subpackages:381            for p in pkg.subpackages:382                for pfn in index_parser.package_file_names:383                    r = RPMFileNameInfo(pfn)384                    info = r.get_nvr_info()385                    if (p == info['name'] and386                            r.get_arch() in arches):387                        rpm_urls.append("%s/%s" % (index_url, pfn))388        else:389            for pfn in index_parser.package_file_names:...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!!
