diff --git a/tests/apitests/python/library/base.py b/tests/apitests/python/library/base.py index 4b73b9feffb..63bcfddb34c 100644 --- a/tests/apitests/python/library/base.py +++ b/tests/apitests/python/library/base.py @@ -3,13 +3,17 @@ import subprocess import time -import v2_swagger_client +import importlib try: from urllib import getproxies except ImportError: from urllib.request import getproxies +def swagger_module(): + module = importlib.import_module("v2_swagger_client") + return module + class Server: def __init__(self, endpoint, verify_ssl): self.endpoint = endpoint @@ -26,6 +30,7 @@ def get_endpoint(): return os.environ.get("HARBOR_HOST_SCHEMA", "https")+ "://"+harbor_server+"/api/v2.0" def _create_client(server, credential, debug, api_type): + v2_swagger_client = swagger_module() cfg = v2_swagger_client.Configuration() cfg.host = server.endpoint cfg.verify_ssl = server.verify_ssl diff --git a/tests/apitests/python/library/repository.py b/tests/apitests/python/library/repository.py index 21dea33ee9e..f98869fbe09 100644 --- a/tests/apitests/python/library/repository.py +++ b/tests/apitests/python/library/repository.py @@ -2,12 +2,16 @@ import time import base -import v2_swagger_client +import importlib import docker_api from docker_api import DockerAPI -from v2_swagger_client.rest import ApiException +# from v2_swagger_client.rest import ApiException from testutils import DOCKER_USER, DOCKER_PWD +def swagger_module(): + module = importlib.import_module("v2_swagger_client") + return module + def pull_harbor_image(registry, username, password, image, tag, expected_login_error_message = None, expected_error_message = None): _docker_api = DockerAPI() _docker_api.docker_login(registry, username, password, expected_error_message = expected_login_error_message) @@ -122,6 +126,7 @@ def get_repository(self, project_name, repo_name, **kwargs): def add_label_to_tag(self, repo_name, tag, label_id, expect_status_code = 200, **kwargs): client = self._get_client(**kwargs) + v2_swagger_client = swagger_module() label = v2_swagger_client.Label(id=label_id) _, status_code, _ = client.repositories_repo_name_tags_tag_labels_post_with_http_info(repo_name, tag, label) base._assert_status_code(expect_status_code, status_code) @@ -158,11 +163,12 @@ def signature_should_exist(self, repo_name, tag, **kwargs): def retag_image(self, repo_name, tag, src_image, override=True, expect_status_code = 200, expect_response_body = None, **kwargs): client = self._get_client(**kwargs) + v2_swagger_client = swagger_module() request = v2_swagger_client.RetagReq(tag=tag, src_image=src_image, override=override) try: data, status_code, _ = client.repositories_repo_name_tags_post_with_http_info(repo_name, request) - except ApiException as e: + except v2_swagger_client.rest.ApiException as e: base._assert_status_code(expect_status_code, e.status) if expect_response_body is not None: base._assert_status_body(expect_response_body, e.body) diff --git a/tests/apitests/python/testutils.py b/tests/apitests/python/testutils.py index 8ec925b42bc..47eda38c1e7 100644 --- a/tests/apitests/python/testutils.py +++ b/tests/apitests/python/testutils.py @@ -15,7 +15,7 @@ files_directory = os.getcwd() + "/tests/files/" -import v2_swagger_client +import importlib admin_user = "admin" admin_pwd = "Harbor12345" @@ -35,9 +35,12 @@ BASE_IMAGE = dict(name='busybox', tag='latest') BASE_IMAGE_ABS_PATH_NAME = '/' + BASE_IMAGE['name'] + '.tar' - +def swagger_module(): + module = importlib.import_module("v2_swagger_client") + return module + def GetRepositoryApi(username, password, harbor_server= os.environ.get("HARBOR_HOST", '')): - + v2_swagger_client = swagger_module() cfg = v2_swagger_client.Configuration() cfg.host = "https://"+harbor_server+"/api/v2.0" cfg.username = username @@ -49,6 +52,7 @@ def GetRepositoryApi(username, password, harbor_server= os.environ.get("HARBOR_H return api_instance def GetUserGroupApi(username, password, harbor_server= os.environ.get("HARBOR_HOST", '')): + v2_swagger_client = swagger_module() cfg = v2_swagger_client.Configuration() cfg.host = "https://"+harbor_server+"/api/v2.0" cfg.username = username