Skip to content

Commit ddadc34

Browse files
jnhyperionJohnny Huang
authored andcommitted
[Xray] Add xray test repo api (#894)
* [JIRA] Optimize error msg * [Xray] Add test repo relavant APIs Co-authored-by: Johnny Huang <jnhuang@telenavsoftware.com>
1 parent 09b634d commit ddadc34

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

atlassian/xray.py

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)