示例#1
0
 def _run_src_doc_examples(self, flavor, args):
     start_time = time.perf_counter()
     target = args.target
     os_name = args.host
     qt_version = args.qt_version
     output_dir = args.outputdir
     if args.base is not None:
         base = args.base + '/online/qtsdkrepository/'
     else:
         base = BASE_URL
     if args.timeout is not None:
         timeout = (args.timeout, args.timeout)
     else:
         timeout = (5, 5)
     sevenzip = self._set_sevenzip(args)
     modules = args.modules
     archives = args.archives
     self._run_common_part(output_dir, base)
     all_extra = True if modules is not None and 'all' in modules else False
     if not self._check_qt_arg_versions(qt_version):
         self.logger.warning(
             "Specified Qt version is unknown: {}.".format(qt_version))
     try:
         srcdocexamples_archives = SrcDocExamplesArchives(
             flavor,
             os_name,
             target,
             qt_version,
             base,
             subarchives=archives,
             modules=modules,
             logging=self.logger,
             all_extra=all_extra,
             timeout=timeout)
     except ArchiveConnectionError:
         try:
             self.logger.warning(
                 "Connection to the download site failed and fallback to mirror site."
             )
             srcdocexamples_archives = SrcDocExamplesArchives(
                 flavor,
                 os_name,
                 target,
                 qt_version,
                 random.choice(FALLBACK_URLS),
                 subarchives=archives,
                 modules=modules,
                 logging=self.logger,
                 all_extra=all_extra,
                 timeout=timeout)
         except Exception:
             self.logger.error(
                 "Connection to the download site failed. Aborted...")
             exit(1)
     except ArchiveDownloadError or ArchiveListError:
         exit(1)
     self.call_installer(srcdocexamples_archives, output_dir, sevenzip)
     self.logger.info("Finished installation")
     self.logger.info("Time elapsed: {time:.8f} second".format(
         time=time.perf_counter() - start_time))
示例#2
0
def test_parse_update_xml(monkeypatch, os_name, version, flavor, datafile):
    def _mock(self, url):
        return (Path(__file__).parent / "data" / datafile).read_text("utf-8")

    monkeypatch.setattr(QtArchives, "_download_update_xml", _mock)

    qt_archives = SrcDocExamplesArchives(flavor, os_name, "desktop", version,
                                         Settings.baseurl)
    assert qt_archives.archives is not None

    # Get packages with all extra modules
    qt_archives_all_modules = SrcDocExamplesArchives(
        flavor,
        os_name,
        "desktop",
        version,
        Settings.baseurl,
        all_extra=True,
    )
    assert qt_archives_all_modules.archives is not None

    # Extract all urls
    url_list = [item.archive_path for item in qt_archives.archives]
    url_all_modules_list = [
        item.archive_path for item in qt_archives_all_modules.archives
    ]

    # Check the difference list contains only extra modules urls for target specified
    list_diff = [item for item in url_all_modules_list if item not in url_list]
    unwanted_targets = [item for item in list_diff if flavor not in item]

    # Assert if list_diff contains urls without target specified
    assert unwanted_targets == []
示例#3
0
 def _run_src_doc_examples(self, flavor, args):
     start_time = time.perf_counter()
     target = args.target
     os_name = args.host
     qt_version = args.qt_version
     output_dir = args.outputdir
     mirror = args.base
     sevenzip = self._set_sevenzip(args)
     modules = args.modules
     archives = args.archives
     self._run_common_part(output_dir, mirror)
     all_extra = True if modules is not None and 'all' in modules else False
     if not self._check_qt_arg_versions(qt_version):
         self.logger.warning(
             "Specified Qt version is unknown: {}.".format(qt_version))
     try:
         srcdocexamples_archives = SrcDocExamplesArchives(
             flavor,
             os_name,
             target,
             qt_version,
             subarchives=archives,
             modules=modules,
             mirror=mirror,
             logging=self.logger,
             all_extra=all_extra)
     except ArchiveDownloadError or ArchiveListError:
         exit(1)
     else:
         self.call_installer(srcdocexamples_archives, output_dir, sevenzip)
     self.logger.info("Finished installation")
     self.logger.info("Time elasped: {time:.8f} second".format(
         time=time.perf_counter() - start_time))
示例#4
0
def make_example_archives(subarchives, modules,
                          is_include_base) -> SrcDocExamplesArchives:
    return SrcDocExamplesArchives(
        flavor="examples",
        os_name="linux",
        target="desktop",
        version="5.15.2",
        base="www.example.com",
        subarchives=subarchives,
        modules=modules,
        all_extra="all" in modules,
        is_include_base_package=is_include_base,
    )
示例#5
0
    def _run_src_doc_examples(self,
                              flavor,
                              args,
                              cmd_name: Optional[str] = None):
        if not cmd_name:
            cmd_name = flavor

        self.show_aqt_version()
        if args.is_legacy:
            self._warn_on_deprecated_command(old_name=cmd_name,
                                             new_name=f"install-{cmd_name}")
        target = args.target
        os_name = args.host
        if hasattr(args, "qt_version_spec"):
            qt_version = str(
                Cli._determine_qt_version(args.qt_version_spec,
                                          os_name,
                                          target,
                                          arch=""))
        else:
            qt_version = args.qt_version
            Cli._validate_version_str(qt_version)
        output_dir = args.outputdir
        if output_dir is None:
            base_dir = os.getcwd()
        else:
            base_dir = output_dir
        keep = args.keep
        if args.base is not None:
            base = args.base
        else:
            base = Settings.baseurl
        if args.timeout is not None:
            timeout = (args.timeout, args.timeout)
        else:
            timeout = (Settings.connection_timeout, Settings.response_timeout)
        sevenzip = self._set_sevenzip(args.external)
        if EXT7Z and sevenzip is None:
            # override when py7zr is not exist
            sevenzip = self._set_sevenzip(Settings.zipcmd)
        modules = args.modules
        archives = args.archives
        all_extra = True if modules is not None and "all" in modules else False
        if not self._check_qt_arg_versions(qt_version):
            self.logger.warning(
                "Specified Qt version is unknown: {}.".format(qt_version))

        srcdocexamples_archives: SrcDocExamplesArchives = self.retry_on_bad_connection(
            lambda base_url: SrcDocExamplesArchives(
                flavor,
                os_name,
                target,
                qt_version,
                base=base_url,
                subarchives=archives,
                modules=modules,
                all_extra=all_extra,
                timeout=timeout,
            ),
            base,
        )
        run_installer(srcdocexamples_archives.get_packages(), base_dir,
                      sevenzip, keep)
        self.logger.info("Finished installation")