11# coding=utf-8
22import logging
33import re
4-
4+ from requests import HTTPError
55from .rest_client import AtlassianRestAPI
66
77log = 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