From 4b32840dfeac8cbc09e4badc2dabd80d11be22cb Mon Sep 17 00:00:00 2001 From: "Mr. Senko" Date: Wed, 28 Jun 2017 14:58:36 +0300 Subject: [PATCH] Don't link TC to Issue Trackers if required parameters not present By default these are api_url, api_username and api_password. For GitHub they are base_url and api_password. Fixes #3 --- tcms/issuetracker/types.py | 12 ++++++++++++ tcms/testcases/models.py | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tcms/issuetracker/types.py b/tcms/issuetracker/types.py index 2bed6e8408..b004ca881f 100644 --- a/tcms/issuetracker/types.py +++ b/tcms/issuetracker/types.py @@ -55,6 +55,12 @@ def add_testcase_to_issue(self, testcases, issue): """ raise NotImplementedError() + def is_adding_testcase_to_issue_disabled(self): + """ + When is linking a TC to a Bug disabled? + """ + return not (self.tracker.api_url and self.tracker.api_username and self.tracker.api_password) + def all_issues_link(self, ids): """ Used in testruns.views.get() aka run/report.html to produce @@ -249,6 +255,12 @@ def add_testcase_to_issue(self, testcases, issue): for case in testcases: github_integration.GitHubThread(self.rpc, self.tracker, case, issue).start() + def is_adding_testcase_to_issue_disabled(self): + """ + Only disabled if we don't have an authentication token + """ + return not (self.tracker.base_url and self.tracker.api_password) + def report_issue_from_testcase(self, caserun): """ GitHub only supports title and body parameters diff --git a/tcms/testcases/models.py b/tcms/testcases/models.py index 6242b3d3d2..888bbd07b7 100644 --- a/tcms/testcases/models.py +++ b/tcms/testcases/models.py @@ -333,7 +333,10 @@ def add_bug(self, bug_id, bug_system_id, summary=None, description=None, if bz_external_track: bug_system = TestCaseBugSystem.objects.get(pk=bug_system_id) it = IssueTrackerType.from_name(bug_system.tracker_type)(bug_system) - it.add_testcase_to_issue([self], bug) + if not it.is_adding_testcase_to_issue_disabled(): + it.add_testcase_to_issue([self], bug) + else: + raise ValueError('Enable linking test cases by configuring API parameters for this Issue Tracker!') else: raise ValueError('Bug %s already exist.' % bug_id)