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))
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