@@ -471,3 +471,89 @@ def get_test_run_steps(self, test_run_id):
471471 """
472472 url = "rest/raven/1.0/api/testrun/{0}/step" .format (test_run_id )
473473 return self .get (url )
474+
475+ def get_test_repo_folders (self , project_key ):
476+ """
477+ Retrieve test repository folders of a project.
478+ :param project_key: Project key (eg. 'FOO').
479+ :return: Returns the list of test repository folders.
480+ """
481+ url = "rest/raven/1.0/api/testrepository/{0}/folders" .format (project_key )
482+ return self .get (url )
483+
484+ def get_test_repo_folder (self , project_key , folder_id ):
485+ """
486+ Retrieve test repository folder of a project.
487+ :param project_key: Project key (eg. 'FOO').
488+ :param folder_id: Internal folder Id.
489+ :return: Returns the test repository folder.
490+ """
491+ url = "rest/raven/1.0/api/testrepository/{0}/folders/{1}" .format (project_key , folder_id )
492+ return self .get (url )
493+
494+ def create_test_repo_folder (self , project_key , folder_name , parent_folder_id = - 1 ):
495+ """
496+ Create test repository folder for a project.
497+ :param project_key: Project key (eg. 'FOO').
498+ :param folder_name: Name of folder.
499+ :param parent_folder_id: Internal folder Id; "-1" corresponds to the root folder of the test repository.
500+ :return: Returns the created test repository folder.
501+ """
502+ data = {"name" : folder_name }
503+ url = "rest/raven/1.0/api/testrepository/{0}/folders/{1}" .format (project_key , parent_folder_id )
504+ return self .post (url , data = data )
505+
506+ def update_test_repo_folder (self , project_key , folder_id , folder_name , rank = 1 ):
507+ """
508+ Update test repository folder for a project.
509+ :param project_key: Project key (eg. 'FOO').
510+ :param folder_id: Internal folder Id.
511+ :param folder_name: Name of folder.
512+ :param rank: Rank within the parent folder.
513+ :return: Returns the updated test repository folder.
514+ """
515+ data = {"name" : folder_name , "rank" : rank }
516+ url = "rest/raven/1.0/api/testrepository/{0}/folders/{1}" .format (project_key , folder_id )
517+ return self .put (url , data = data )
518+
519+ def delete_test_repo_folder (self , project_key , folder_id ):
520+ """
521+ Delete test repository folder for a project.
522+ :param project_key: Project key (eg. 'FOO').
523+ :param folder_id: Internal folder Id.
524+ :return: Returns the delete results.
525+ """
526+ url = "rest/raven/1.0/api/testrepository/{0}/folders/{1}" .format (project_key , folder_id )
527+ return self .delete (url )
528+
529+ def get_test_repo_folder_tests (self , project_key , folder_id , all_descendants = False , page = 1 , limit = 50 ):
530+ """
531+ Retrieve tests of a test repository folder.
532+ :param project_key: Project key (eg. 'FOO').
533+ :param folder_id: Internal folder Id.
534+ :param all_descendants: Include all descendants (i.e. all child Tests); "false", by default.
535+ :param page: Page of paginated data (first 1)
536+ :param limit: Amount of Tests per paginated data.
537+ :return: Returns list of the Tests contained in a given folder of the test repository.
538+ """
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 )
543+
544+ def update_test_repo_folder_tests (self , project_key , folder_id , add = None , remove = None ):
545+ """
546+ Update tests of a test repository folder.
547+ :param project_key: Project key (eg. 'FOO').
548+ :param folder_id: Internal folder Id.
549+ :param add: OPTIONAL: List of tests to be added (eg. ['TEST-001', 'TEST-002'])
550+ :param remove: OPTIONAL: List of tests to be removed (eg. ['TEST-003'])
551+ :return: Returns the update result.
552+ """
553+ if add is None :
554+ add = []
555+ if remove is None :
556+ remove = []
557+ data = {"add" : add , "remove" : remove }
558+ url = "rest/raven/1.0/api/testrepository/{0}/folders/{1}/tests" .format (project_key , folder_id )
559+ return self .put (url , data = data )
0 commit comments