From 569527d8a9f2b9812d11235cd20e341ef3716d64 Mon Sep 17 00:00:00 2001 From: guyingzhao <572488191@qq.com> Date: Fri, 2 Aug 2019 12:46:50 +0800 Subject: [PATCH] runplan suport pypi index_url --- testbase/dist.py | 17 +++++++++++++++-- testbase/management.py | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/testbase/dist.py b/testbase/dist.py index aa77518..9b1b6a0 100644 --- a/testbase/dist.py +++ b/testbase/dist.py @@ -238,10 +238,11 @@ class VirtuelEnv(object): VENV_ENV_NAME = "QTAF_VENV" - def __init__(self, dist_pkg_path, path=None, recreate=False): + def __init__(self, dist_pkg_path, path=None, recreate=False, index_url=None): self._dist_pkg_path = dist_pkg_path self._venv = path self._recreate_venv = recreate + self._index_url = index_url def activate(self): """activate virtuelenv on current processs @@ -284,10 +285,22 @@ def activate(self): with open(activation_script) as fd: exec(fd.read(), dict(__file__=activation_script)) if created: - subprocess.call(["pip", "install", self._dist_pkg_path], close_fds=True) + print("install requires") + if not self._index_url: + subprocess.call(["pip", "install", self._dist_pkg_path], close_fds=True) + else: + host = self._index_url.split("/")[2].split(":")[0] + cmdline = ["pip", "install", "-i", self._index_url, + "--trusted-host", host, self._dist_pkg_path] + print(cmdline) + subprocess.call(cmdline, close_fds=True) + else: + print("skipping requires") os.environ[self.VENV_ENV_NAME] = "1" argv = list(sys.argv) + path_list = "\n".join(os.environ["PATH"].split(":")) + print(path_list) argv[0] = "qta-manage-venv" subprocess.call(argv, close_fds=True) sys.exit(0) diff --git a/testbase/management.py b/testbase/management.py index 81e120f..01f6a85 100644 --- a/testbase/management.py +++ b/testbase/management.py @@ -557,6 +557,7 @@ class RunPlanDistPackage(Command): parser.add_argument("--disable-run-on-child", help="do not create child process to run", action="store_true") + parser.add_argument("--index-url", help="pypi index url for pip") parser.add_argument("package", help="QTA sdist package") parser.add_argument("plan", help="designate a test plan to run")