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))
if __name__ == "__main__":

    parser = argparse.ArgumentParser(
        description=
        "This script is used during a release stage to prevent releasing packages on PyPI with missing dependencies."
    )

    parser.add_argument(
        "--package-name",
        required=True,
        help=
        "name of package (accepts both formats: azure-service-package and azure_service_package)",
    )
    parser.add_argument(
        "--service",
        required=True,
        help=
        "name of the service for which to set the dev build id (e.g. keyvault)",
    )

    args = parser.parse_args()

    package_name = args.package_name.replace("_", "-")
    path_to_setup = os.path.join(root_dir, "sdk", args.service, package_name,
                                 "setup.py")

    missing_packages = find_packages_missing_on_pypi(path_to_setup)

    if missing_packages:
        exit(1)