@@ -471,3 +471,89 @@ def get_test_run_steps(self, test_run_id):
471
471
"""
472
472
url = "rest/raven/1.0/api/testrun/{0}/step" .format (test_run_id )
473
473
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