From e944a95386d61123ac56fb8c7b191d5e3df27ea7 Mon Sep 17 00:00:00 2001 From: Yusuf-TJ <73256563+Yusuf-TJ@users.noreply.github.com> Date: Fri, 15 Apr 2022 15:52:27 +0100 Subject: [PATCH 1/4] updated `jira.search_issues` The `jira.search_issues` documentation states that when nothing is passed to the field parameter, all fields are returned. https://jira.readthedocs.io/api.html?highlight=search_issues#jira.client.JIRA.search_issues The "*all" has been set as the default field parameter to achieve this. --- jira/client.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/jira/client.py b/jira/client.py index 0af6c29a3..847c7108f 100644 --- a/jira/client.py +++ b/jira/client.py @@ -2870,7 +2870,7 @@ def search_issues( startAt: int = 0, maxResults: int = 50, validate_query: bool = True, - fields: Optional[Union[str, List[str]]] = None, + fields: Optional[Union[str, List[str]]] = "*all", expand: Optional[str] = None, json_result: bool = False, ) -> Union[List[Dict[str, Any]], ResultList[Issue]]: @@ -2895,8 +2895,6 @@ def search_issues( """ if isinstance(fields, str): fields = fields.split(",") - else: - fields = list(fields or []) # this will translate JQL field names to REST API Name # most people do know the JQL names so this will help them use the API easier From 4721e551fce4ebe161710c79c5b99386b3529402 Mon Sep 17 00:00:00 2001 From: Yusuf-TJ <73256563+Yusuf-TJ@users.noreply.github.com> Date: Mon, 18 Apr 2022 08:59:14 +0100 Subject: [PATCH 2/4] added test for issue_search field --- tests/resources/test_issue.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/resources/test_issue.py b/tests/resources/test_issue.py index 85131f3d9..e615db7e1 100644 --- a/tests/resources/test_issue.py +++ b/tests/resources/test_issue.py @@ -25,6 +25,27 @@ def test_issue(self): issue = self.jira.issue(self.issue_1) self.assertEqual(issue.key, self.issue_1) self.assertEqual(issue.fields.summary, "issue 1 from %s" % self.project_b) + + def test_issue_search_field(self): + issues = self.jira.search_issues("key=%s" % self.issue_1) + self.assertEqual(self.issue_1, issues[0].key) + self.assertIsInstance(issues, list) + + issues = self.jira.search_issues("key=%s" % self.issue_1, json_result=True) + self.assertIsInstance(issues, dict) + + issues = self.jira.search_issues("key=%s" % self.issue_1, fields="comment,assignee") + self.assertTrue(hasattr(issues[0].fields, "comment")) + self.assertTrue(hasattr(issues[0].fields, "assignee")) + self.assertFalse(hasattr(issues[0].fields, "reporter")) + + + issues = self.jira.search_issues("key=%s" % self.issue_1) + self.assertTrue(hasattr(issues[0].fields, "reporter")) + self.assertTrue(hasattr(issues[0].fields, "comment")) + + issues = self.jira.search_issues("key=%s" % self.issue_1, fields=[]) + self.assertFalse(hasattr(issues[0].fields, "comment")) def test_issue_get_field(self): issue = self.jira.issue(self.issue_1) From 81224e3b34b7c3d59ef4ea564b754d466e93a2f0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 18 Apr 2022 16:29:58 +0000 Subject: [PATCH 3/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/resources/test_issue.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/resources/test_issue.py b/tests/resources/test_issue.py index e615db7e1..6e68cccb3 100644 --- a/tests/resources/test_issue.py +++ b/tests/resources/test_issue.py @@ -25,25 +25,26 @@ def test_issue(self): issue = self.jira.issue(self.issue_1) self.assertEqual(issue.key, self.issue_1) self.assertEqual(issue.fields.summary, "issue 1 from %s" % self.project_b) - + def test_issue_search_field(self): issues = self.jira.search_issues("key=%s" % self.issue_1) self.assertEqual(self.issue_1, issues[0].key) self.assertIsInstance(issues, list) - + issues = self.jira.search_issues("key=%s" % self.issue_1, json_result=True) self.assertIsInstance(issues, dict) - issues = self.jira.search_issues("key=%s" % self.issue_1, fields="comment,assignee") + issues = self.jira.search_issues( + "key=%s" % self.issue_1, fields="comment,assignee" + ) self.assertTrue(hasattr(issues[0].fields, "comment")) self.assertTrue(hasattr(issues[0].fields, "assignee")) self.assertFalse(hasattr(issues[0].fields, "reporter")) - issues = self.jira.search_issues("key=%s" % self.issue_1) self.assertTrue(hasattr(issues[0].fields, "reporter")) self.assertTrue(hasattr(issues[0].fields, "comment")) - + issues = self.jira.search_issues("key=%s" % self.issue_1, fields=[]) self.assertFalse(hasattr(issues[0].fields, "comment")) From bbc91d28a61b4e201e9f9848dbd41d092e91dc60 Mon Sep 17 00:00:00 2001 From: Yusuf-TJ <73256563+Yusuf-TJ@users.noreply.github.com> Date: Mon, 18 Apr 2022 19:11:55 +0100 Subject: [PATCH 4/4] separate issue_search tests into distinct functions with clearer names --- tests/resources/test_issue.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/resources/test_issue.py b/tests/resources/test_issue.py index 6e68cccb3..a1199ba0d 100644 --- a/tests/resources/test_issue.py +++ b/tests/resources/test_issue.py @@ -26,14 +26,17 @@ def test_issue(self): self.assertEqual(issue.key, self.issue_1) self.assertEqual(issue.fields.summary, "issue 1 from %s" % self.project_b) - def test_issue_search_field(self): + def test_issue_search_finds_issue(self): issues = self.jira.search_issues("key=%s" % self.issue_1) self.assertEqual(self.issue_1, issues[0].key) - self.assertIsInstance(issues, list) + def test_issue_search_return_type(self): + issues = self.jira.search_issues("key=%s" % self.issue_1) + self.assertIsInstance(issues, list) issues = self.jira.search_issues("key=%s" % self.issue_1, json_result=True) self.assertIsInstance(issues, dict) + def test_issue_search_only_includes_provided_fields(self): issues = self.jira.search_issues( "key=%s" % self.issue_1, fields="comment,assignee" ) @@ -41,13 +44,11 @@ def test_issue_search_field(self): self.assertTrue(hasattr(issues[0].fields, "assignee")) self.assertFalse(hasattr(issues[0].fields, "reporter")) + def test_issue_search_default_behaviour_included_fields(self): issues = self.jira.search_issues("key=%s" % self.issue_1) self.assertTrue(hasattr(issues[0].fields, "reporter")) self.assertTrue(hasattr(issues[0].fields, "comment")) - issues = self.jira.search_issues("key=%s" % self.issue_1, fields=[]) - self.assertFalse(hasattr(issues[0].fields, "comment")) - def test_issue_get_field(self): issue = self.jira.issue(self.issue_1) self.assertEqual(