Skip to content

Commit 2781771

Browse files
jnhyperionJohnny Huang
authored andcommitted
[Xray] Optimize param passing & error handling (#895)
* [JIRA] Optimize error msg * [Xray] Add test repo relavant APIs * Better error handling * 1. better xray param passing for get_test_repo_folder_tests 2. better error handling Co-authored-by: Johnny Huang <jnhuang@telenavsoftware.com>
1 parent fcf127c commit 2781771

File tree

4 files changed

+33
-11
lines changed

4 files changed

+33
-11
lines changed

atlassian/confluence.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2679,5 +2679,5 @@ def raise_for_status(self, response):
26792679
error_msg = j["message"]
26802680
except Exception:
26812681
response.raise_for_status()
2682-
2683-
raise HTTPError(error_msg, response=response)
2682+
else:
2683+
raise HTTPError(error_msg, response=response)

atlassian/jira.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3914,5 +3914,5 @@ def raise_for_status(self, response):
39143914
error_msg = "\n".join(j["errorMessages"] + [k + ": " + v for k, v in j["errors"].items()])
39153915
except Exception:
39163916
response.raise_for_status()
3917-
3918-
raise HTTPError(error_msg, response=response)
3917+
else:
3918+
raise HTTPError(error_msg, response=response)

atlassian/service_desk.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -778,5 +778,5 @@ def raise_for_status(self, response):
778778
error_msg = j["errorMessage"]
779779
except Exception:
780780
response.raise_for_status()
781-
782-
raise HTTPError(error_msg, response=response)
781+
else:
782+
raise HTTPError(error_msg, response=response)

atlassian/xray.py

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# coding=utf-8
22
import logging
33
import re
4-
4+
from requests import HTTPError
55
from .rest_client import AtlassianRestAPI
66

77
log = logging.getLogger(__name__)
@@ -535,11 +535,19 @@ def get_test_repo_folder_tests(self, project_key, folder_id, all_descendants=Fal
535535
:param page: Page of paginated data (first 1)
536536
:param limit: Amount of Tests per paginated data.
537537
:return: Returns list of the Tests contained in a given folder of the test repository.
538+
Note: param "page" and "limit" must coexist, otherwise rest api will raise 400
538539
"""
539-
url = "rest/raven/1.0/api/testrepository/{0}/folders/{1}/tests?allDescendants={2}&page={3}&limit={4}".format(
540-
project_key, folder_id, all_descendants, page, limit
541-
)
542-
return self.get(url)
540+
url = "rest/raven/1.0/api/testrepository/{0}/folders/{1}/tests".format(project_key, folder_id)
541+
params = {}
542+
543+
if all_descendants:
544+
params["allDescendants"] = all_descendants
545+
if page:
546+
params["page"] = page
547+
if limit:
548+
params["limit"] = limit
549+
550+
return self.get(url, params=params)
543551

544552
def update_test_repo_folder_tests(self, project_key, folder_id, add=None, remove=None):
545553
"""
@@ -557,3 +565,17 @@ def update_test_repo_folder_tests(self, project_key, folder_id, add=None, remove
557565
data = {"add": add, "remove": remove}
558566
url = "rest/raven/1.0/api/testrepository/{0}/folders/{1}/tests".format(project_key, folder_id)
559567
return self.put(url, data=data)
568+
569+
def raise_for_status(self, response):
570+
"""
571+
Checks the response for an error status and raises an exception with the error message provided by the server
572+
:param response:
573+
:return:
574+
"""
575+
if 400 <= response.status_code < 600:
576+
try:
577+
error_msg = response.text
578+
except Exception:
579+
response.raise_for_status()
580+
else:
581+
raise HTTPError(error_msg, response=response)

0 commit comments

Comments
 (0)