Skip to content

Commit

Permalink
Fix API python tests log missing issue
Browse files Browse the repository at this point in the history
After debugging for issue of missing some http message logs, we found out that swagger client configuration will be re-initiated by calling models in swagger client, so in API python tests, defination for models must be in front of swagger client defination.

Signed-off-by: danfengliu <danfengl@vmware.com>
  • Loading branch information
danfengliu committed Mar 15, 2021
1 parent 68d7c91 commit 068d1d4
Show file tree
Hide file tree
Showing 14 changed files with 100 additions and 181 deletions.
26 changes: 8 additions & 18 deletions tests/apitests/python/library/artifact.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ def __init__(self):
super(Artifact,self).__init__(api_type = "artifact")

def list_artifacts(self, project_name, repo_name, **kwargs):
client = self._get_client(**kwargs)
return client.list_artifacts(project_name, repo_name)
return self._get_client(**kwargs).list_artifacts(project_name, repo_name)

def get_reference_info(self, project_name, repo_name, reference, expect_status_code = 200, ignore_not_found = False,**kwargs):
client = self._get_client(**kwargs)
params = {}
if "with_signature" in kwargs:
params["with_signature"] = kwargs["with_signature"]
Expand All @@ -26,7 +24,7 @@ def get_reference_info(self, project_name, repo_name, reference, expect_status_c
params["with_immutable_status"] = kwargs["with_immutable_status"]

try:
data, status_code, _ = client.get_artifact_with_http_info(project_name, repo_name, reference, **params)
data, status_code, _ = self._get_client(**kwargs).get_artifact_with_http_info(project_name, repo_name, reference, **params)
return data
except ApiException as e:
if e.status == 404 and ignore_not_found == True:
Expand All @@ -39,10 +37,8 @@ def get_reference_info(self, project_name, repo_name, reference, expect_status_c
return None

def delete_artifact(self, project_name, repo_name, reference, expect_status_code = 200, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)

try:
_, status_code, _ = client.delete_artifact_with_http_info(project_name, repo_name, reference)
_, status_code, _ = self._get_client(**kwargs).delete_artifact_with_http_info(project_name, repo_name, reference)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
if expect_response_body is not None:
Expand All @@ -53,14 +49,12 @@ def delete_artifact(self, project_name, repo_name, reference, expect_status_code
base._assert_status_code(200, status_code)

def get_addition(self, project_name, repo_name, reference, addition, **kwargs):
client = self._get_client(**kwargs)
return client.get_addition_with_http_info(project_name, repo_name, reference, addition)
return self._get_client(**kwargs).get_addition_with_http_info(project_name, repo_name, reference, addition)

def add_label_to_reference(self, project_name, repo_name, reference, label_id, expect_status_code = 200, **kwargs):
client = self._get_client(**kwargs)
label = v2_swagger_client.Label(id = label_id)
try:
body, status_code, _ = client.add_label_with_http_info(project_name, repo_name, reference, label)
body, status_code, _ = self._get_client(**kwargs).add_label_with_http_info(project_name, repo_name, reference, label)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
else:
Expand All @@ -69,10 +63,8 @@ def add_label_to_reference(self, project_name, repo_name, reference, label_id, e
return body

def copy_artifact(self, project_name, repo_name, _from, expect_status_code = 201, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)

try:
data, status_code, _ = client.copy_artifact_with_http_info(project_name, repo_name, _from)
data, status_code, _ = self._get_client(**kwargs).copy_artifact_with_http_info(project_name, repo_name, _from)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
if expect_response_body is not None:
Expand All @@ -84,10 +76,9 @@ def copy_artifact(self, project_name, repo_name, _from, expect_status_code = 201
return data

def create_tag(self, project_name, repo_name, reference, tag_name, expect_status_code = 201, ignore_conflict = False, **kwargs):
client = self._get_client(**kwargs)
tag = v2_swagger_client.Tag(name = tag_name)
try:
_, status_code, _ = client.create_tag_with_http_info(project_name, repo_name, reference, tag)
_, status_code, _ = self._get_client(**kwargs).create_tag_with_http_info(project_name, repo_name, reference, tag)
except ApiException as e:
if e.status == 409 and ignore_conflict == True:
return
Expand All @@ -98,9 +89,8 @@ def create_tag(self, project_name, repo_name, reference, tag_name, expect_status
base._assert_status_code(201, status_code)

def delete_tag(self, project_name, repo_name, reference, tag_name, expect_status_code = 200, **kwargs):
client = self._get_client(**kwargs)
try:
_, status_code, _ = client.delete_tag_with_http_info(project_name, repo_name, reference, tag_name)
_, status_code, _ = self._get_client(**kwargs).delete_tag_with_http_info(project_name, repo_name, reference, tag_name)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
else:
Expand Down
2 changes: 1 addition & 1 deletion tests/apitests/python/library/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ def restart_process(process):


def run_command_with_popen(command):
print("Command: ", subprocess.list2cmdline(command))
print("Command: ", command)

try:
proc = subprocess.Popen(command, universal_newlines=True, shell=True,
Expand Down
20 changes: 5 additions & 15 deletions tests/apitests/python/library/gc.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@ def __init__(self):
super(GC,self).__init__(api_type = "gc")

def get_gc_history(self, expect_status_code = 200, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)

try:
data, status_code, _ = client.get_gc_history_with_http_info()
data, status_code, _ = self._get_client(**kwargs).get_gc_history_with_http_info()
except ApiException as e:
if e.status == expect_status_code:
if expect_response_body is not None and e.body.strip() != expect_response_body.strip():
Expand All @@ -27,10 +25,8 @@ def get_gc_history(self, expect_status_code = 200, expect_response_body = None,
return data

def get_gc_status_by_id(self, job_id, expect_status_code = 200, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)

try:
data, status_code, _ = client.get_gc_with_http_info(job_id)
data, status_code, _ = self._get_client(**kwargs).get_gc_with_http_info(job_id)
except ApiException as e:
if e.status == expect_status_code:
if expect_response_body is not None and e.body.strip() != expect_response_body.strip():
Expand All @@ -43,10 +39,8 @@ def get_gc_status_by_id(self, job_id, expect_status_code = 200, expect_response_
return data

def get_gc_log_by_id(self, job_id, expect_status_code = 200, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)

try:
data, status_code, _ = client.get_gc_log_with_http_info(job_id)
data, status_code, _ = self._get_client(**kwargs).get_gc_log_with_http_info(job_id)
except ApiException as e:
if e.status == expect_status_code:
if expect_response_body is not None and e.body.strip() != expect_response_body.strip():
Expand All @@ -59,10 +53,8 @@ def get_gc_log_by_id(self, job_id, expect_status_code = 200, expect_response_bod
return data

def get_gc_schedule(self, expect_status_code = 200, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)

try:
data, status_code, _ = client.get_gc_schedule_with_http_info()
data, status_code, _ = self._get_client(**kwargs).get_gc_schedule_with_http_info()
except ApiException as e:
if e.status == expect_status_code:
if expect_response_body is not None and e.body.strip() != expect_response_body.strip():
Expand All @@ -75,8 +67,6 @@ def get_gc_schedule(self, expect_status_code = 200, expect_response_body = None,
return data

def create_gc_schedule(self, schedule_type, is_delete_untagged, cron = None, expect_status_code = 201, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)

gc_parameters = {'delete_untagged':is_delete_untagged}

gc_schedule = v2_swagger_client.ScheduleObj()
Expand All @@ -89,7 +79,7 @@ def create_gc_schedule(self, schedule_type, is_delete_untagged, cron = None, exp
gc_job.parameters = gc_parameters

try:
_, status_code, header = client.create_gc_schedule_with_http_info(gc_job)
_, status_code, header = self._get_client(**kwargs).create_gc_schedule_with_http_info(gc_job)
except ApiException as e:
if e.status == expect_status_code:
if expect_response_body is not None and e.body.strip() != expect_response_body.strip():
Expand Down
18 changes: 6 additions & 12 deletions tests/apitests/python/library/preheat.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@ def create_instance(self, name = None, description="It's a dragonfly instance",
expect_status_code = 201, expect_response_body = None, **kwargs):
if name is None:
name = base._random_name("instance")
client = self._get_client(**kwargs)
instance = v2_swagger_client.Instance(name=name, description=description,vendor=vendor,
endpoint=endpoint_url, auth_mode=auth_mode, enabled=enabled)
print("instance:",instance)
try:
_, status_code, header = client.create_instance_with_http_info(instance)
_, status_code, header = self._get_client(**kwargs).create_instance_with_http_info(instance)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
if expect_response_body is not None:
Expand All @@ -34,13 +33,12 @@ def create_policy(self, project_name, project_id, provider_id, name = None, desc
expect_status_code = 201, expect_response_body = None, **kwargs):
if name is None:
name = base._random_name("policy")
client = self._get_client(**kwargs)
policy = v2_swagger_client.PreheatPolicy(name=name, project_id=project_id, provider_id=provider_id,
description=description,filters=filters,
trigger=trigger, enabled=enabled)
print("policy:",policy)
try:
data, status_code, header = client.create_policy_with_http_info(project_name, policy)
data, status_code, header = self._get_client(**kwargs).create_policy_with_http_info(project_name, policy)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
if expect_response_body is not None:
Expand All @@ -51,21 +49,17 @@ def create_policy(self, project_name, project_id, provider_id, name = None, desc
return base._get_id_from_header(header), name

def get_instance(self, instance_name, **kwargs):
client = self._get_client(**kwargs)
return client.get_instance(instance_name)
return self._get_client(**kwargs).get_instance(instance_name)

def get_policy(self, project_name, preheat_policy_name, **kwargs):
client = self._get_client(**kwargs)
return client.get_policy(project_name, preheat_policy_name)
return self._get_client(**kwargs).get_policy(project_name, preheat_policy_name)

def update_policy(self, project_name, preheat_policy_name, policy, **kwargs):
client = self._get_client(**kwargs)
return client.update_policy(project_name, preheat_policy_name, policy)
return self._get_client(**kwargs).update_policy(project_name, preheat_policy_name, policy)

def delete_instance(self, preheat_instance_name, expect_status_code = 200, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)
try:
_, status_code, header = _, status_code, _ = client.delete_instance_with_http_info(preheat_instance_name)
_, status_code, header = _, status_code, _ = self._get_client(**kwargs).delete_instance_with_http_info(preheat_instance_name)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
if expect_response_body is not None:
Expand Down
39 changes: 13 additions & 26 deletions tests/apitests/python/library/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,9 @@ def create_project(self, name=None, registry_id=None, metadata=None, expect_stat
metadata = {}
if registry_id is None:
registry_id = registry_id

client = self._get_client(**kwargs)

project = v2_swagger_client.ProjectReq(project_name=name, registry_id = registry_id, metadata=metadata)
try:
_, status_code, header = client.create_project_with_http_info(v2_swagger_client.ProjectReq(project_name=name, registry_id = registry_id, metadata=metadata))
_, status_code, header = self._get_client(**kwargs).create_project_with_http_info(project)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
if expect_response_body is not None:
Expand All @@ -52,9 +50,8 @@ def create_project(self, name=None, registry_id=None, metadata=None, expect_stat
return base._get_id_from_header(header), name

def get_projects(self, params, **kwargs):
client = self._get_client(**kwargs)
data = []
data, status_code, _ = client.list_projects_with_http_info(**params)
data, status_code, _ = self._get_client(**kwargs).list_projects_with_http_info(**params)
base._assert_status_code(200, status_code)
return data

Expand All @@ -75,9 +72,8 @@ def projects_should_exist(self, params, expected_count = None, expected_project_
raise Exception(r"Project-id check failed, expect {} but got {}, please check this test case.".format(str(expected_project_id), str(project_data[0].project_id)))

def check_project_name_exist(self, name=None, **kwargs):
client = self._get_client(**kwargs)
try:
_, status_code, _ = client.head_project_with_http_info(name)
_, status_code, _ = self._get_client(**kwargs).head_project_with_http_info(name)
except ApiException as e:
status_code = -1
return {
Expand All @@ -86,9 +82,8 @@ def check_project_name_exist(self, name=None, **kwargs):
}.get(status_code,False)

def get_project(self, project_id, expect_status_code = 200, expect_response_body = None, **kwargs):
client = self._get_client(**kwargs)
try:
data, status_code, _ = client.get_project_with_http_info(project_id)
data, status_code, _ = self._get_client(**kwargs).get_project_with_http_info(project_id)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
if expect_response_body is not None:
Expand All @@ -101,23 +96,20 @@ def get_project(self, project_id, expect_status_code = 200, expect_response_body
return data

def update_project(self, project_id, expect_status_code=200, metadata=None, cve_allowlist=None, **kwargs):
client = self._get_client(**kwargs)
project = v2_swagger_client.ProjectReq(metadata=metadata, cve_allowlist=cve_allowlist)
try:
_, sc, _ = client.update_project_with_http_info(project_id, project)
_, sc, _ = self._get_client(**kwargs).update_project_with_http_info(project_id, project)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
else:
base._assert_status_code(expect_status_code, sc)

def delete_project(self, project_id, expect_status_code = 200, **kwargs):
client = self._get_client(**kwargs)
_, status_code, _ = client.delete_project_with_http_info(project_id)
_, status_code, _ = self._get_client(**kwargs).delete_project_with_http_info(project_id)
base._assert_status_code(expect_status_code, status_code)

def get_project_log(self, project_name, expect_status_code = 200, **kwargs):
client = self._get_client(**kwargs)
body, status_code, _ = client.get_logs_with_http_info(project_name)
body, status_code, _ = self._get_client(**kwargs).get_logs_with_http_info(project_name)
base._assert_status_code(expect_status_code, status_code)
return body

Expand All @@ -134,16 +126,14 @@ def filter_project_logs(self, project_name, operator, resource, resource_type, o

def get_project_members(self, project_id, **kwargs):
kwargs['api_type'] = 'products'
client = self._get_client(**kwargs)
return client.projects_project_id_members_get(project_id)
return self._get_client(**kwargs).projects_project_id_members_get(project_id)

def get_project_member(self, project_id, member_id, expect_status_code = 200, expect_response_body = None, **kwargs):
from swagger_client.rest import ApiException
kwargs['api_type'] = 'products'
client = self._get_client(**kwargs)
data = []
try:
data, status_code, _ = client.projects_project_id_members_mid_get_with_http_info(project_id, member_id,)
data, status_code, _ = self._get_client(**kwargs).projects_project_id_members_mid_get_with_http_info(project_id, member_id,)
except ApiException as e:
base._assert_status_code(expect_status_code, e.status)
if expect_response_body is not None:
Expand Down Expand Up @@ -179,17 +169,15 @@ def check_project_members_exist(self, project_id, member_user_name, expected_mem

def update_project_member_role(self, project_id, member_id, member_role_id, expect_status_code = 200, **kwargs):
kwargs['api_type'] = 'products'
client = self._get_client(**kwargs)
role = swagger_client.Role(role_id = member_role_id)
data, status_code, _ = client.projects_project_id_members_mid_put_with_http_info(project_id, member_id, role = role)
data, status_code, _ = self._get_client(**kwargs).projects_project_id_members_mid_put_with_http_info(project_id, member_id, role = role)
base._assert_status_code(expect_status_code, status_code)
base._assert_status_code(200, status_code)
return data

def delete_project_member(self, project_id, member_id, expect_status_code = 200, **kwargs):
kwargs['api_type'] = 'products'
client = self._get_client(**kwargs)
_, status_code, _ = client.projects_project_id_members_mid_delete_with_http_info(project_id, member_id)
_, status_code, _ = self._get_client(**kwargs).projects_project_id_members_mid_delete_with_http_info(project_id, member_id)
base._assert_status_code(expect_status_code, status_code)
base._assert_status_code(200, status_code)

Expand All @@ -205,10 +193,9 @@ def add_project_members(self, project_id, user_id = None, member_role_id = None,
if _ldap_group_dn is not None:
projectMember.member_group = swagger_client.UserGroup(ldap_group_dn=_ldap_group_dn)

client = self._get_client(**kwargs)
data = []
try:
data, status_code, header = client.projects_project_id_members_post_with_http_info(project_id, project_member = projectMember)
data, status_code, header = self._get_client(**kwargs).projects_project_id_members_post_with_http_info(project_id, project_member = projectMember)
except swagger_client.rest.ApiException as e:
base._assert_status_code(expect_status_code, e.status)
else:
Expand Down
3 changes: 1 addition & 2 deletions tests/apitests/python/library/projectV2.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ def __init__(self):
super(ProjectV2,self).__init__(api_type = "projectv2")

def get_project_log(self, project_name, expect_status_code = 200, **kwargs):
client = self._get_client(**kwargs)
body, status_code, _ = client.get_logs_with_http_info(project_name)
body, status_code, _ = self._get_client(**kwargs).get_logs_with_http_info(project_name)
base._assert_status_code(expect_status_code, status_code)
return body

Expand Down
Loading

0 comments on commit 068d1d4

Please sign in to comment.