def run(self):
        pkg_name = self.context.package_name
        if pkg_name in self.package_dependency_dict:
            logging.info("Running regression test for {}".format(pkg_name))

            self.whl_path = os.path.join(
                self.context.whl_directory,
                find_whl(pkg_name, self.context.pkg_version,
                         self.context.whl_directory))
            if find_packages_missing_on_pypi(self.whl_path):
                logging.error(
                    "Required packages are not available on PyPI. Skipping regression test"
                )
                exit(0)

            dep_packages = self.package_dependency_dict[pkg_name]
            logging.info("Dependent packages for [{0}]: {1}".format(
                pkg_name, dep_packages))
            for dep_pkg_path in dep_packages:
                dep_pkg_name, _, _, _ = parse_setup(dep_pkg_path)

                logging.info(
                    "Starting regression test of {0} against released {1}".
                    format(pkg_name, dep_pkg_name))
                self._run_test(dep_pkg_path)
                logging.info(
                    "Completed regression test of {0} against released {1}".
                    format(pkg_name, dep_pkg_name))

            logging.info("Completed regression test for {}".format(pkg_name))
        else:
            logging.info(
                "Package {} is not added as required by any package".format(
                    pkg_name))
示例#2
0
def build_whl_for_req(req, package_path):
    if ".." in req:
        # Create temp path if it doesn't exist
        temp_dir = os.path.join(package_path, ".tmp_whl_dir")
        if not os.path.exists(temp_dir):
            os.mkdir(temp_dir)

        req_pkg_path = os.path.abspath(os.path.join(package_path, req.replace("\n", "")))
        pkg_name, version, _, _ = parse_setup(req_pkg_path)
        logging.info("Building wheel for package {}".format(pkg_name))
        run_check_call([sys.executable, "setup.py", "bdist_wheel", "-d", temp_dir], req_pkg_path)

        whl_path = find_whl(pkg_name, version, temp_dir)
        logging.info("Wheel for package {0} is {1}".format(pkg_name, whl_path))
        logging.info("Replacing dev requirement. Old requirement:{0}, New requirement:{1}".format(req, whl_path))
        return whl_path
    else:
        return req