From ce92e3a4f05f5d78e13d2924c27d8743813fb2f9 Mon Sep 17 00:00:00 2001 From: ryneeverett Date: Sun, 10 Nov 2024 22:50:19 -0500 Subject: [PATCH] jira: eliminate unnecessary 'extra' fields Also, don't override get_issue_for_record. Jira was the only service doing this and the only advantage was a marginal convenience in testing. --- bugwarrior/services/jira.py | 20 +++++++------------- tests/test_jira.py | 10 ++++------ 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/bugwarrior/services/jira.py b/bugwarrior/services/jira.py index 2cd0e0e6..2a2c88d5 100644 --- a/bugwarrior/services/jira.py +++ b/bugwarrior/services/jira.py @@ -245,11 +245,11 @@ def to_taskwarrior(self): return {**fixed_fields, **extra_fields} def get_extra_fields(self): - if self.extra['extra_fields'] is None: + if self.config.extra_fields is None: return {} return {extra_field.label: extra_field.extract_value( - self.record['fields']) for extra_field in self.extra['extra_fields']} + self.record['fields']) for extra_field in self.config.extra_fields} def get_entry(self): created_at = self.record['fields']['created'] @@ -307,12 +307,12 @@ def get_url(self): return self.config.base_uri + '/browse/' + self.record['key'] def get_summary(self): - if self.extra.get('jira_version') == 4: + if self.config.version == 4: return self.record['fields']['summary']['value'] return self.record['fields']['summary'] def get_estimate(self): - if self.extra.get('jira_version') == 4: + if self.config.version == 4: return self.record['fields']['timeestimate']['value'] try: return self.record['fields']['timeestimate'] / 60 / 60 @@ -430,21 +430,15 @@ def annotations(self, issue, issue_obj): issue_obj.get_url() ) - def get_issue_for_record(self, record, extra=None): - if extra is None: - extra = {} - extra.setdefault('sprint_field_names', self.sprint_field_names) - return super().get_issue_for_record(record, extra=extra) - def issues(self): cases = self.jira.search_issues(self.query, maxResults=None) for case in cases: - issue = self.get_issue_for_record(case.raw) + issue = self.get_issue_for_record( + case.raw, + extra={'sprint_field_names': self.sprint_field_names}) extra = { - 'jira_version': self.config.version, 'body': self.body(issue), - 'extra_fields': self.config.extra_fields, } if self.config.version > 4: extra.update({ diff --git a/tests/test_jira.py b/tests/test_jira.py index a25b8496..7101b374 100644 --- a/tests/test_jira.py +++ b/tests/test_jira.py @@ -58,7 +58,6 @@ def test_body_length_limit(self): service = JiraService( conf['myjira'], conf['general'], _skip_server=True) issue = mock.Mock() - issue = mock.Mock() issue.record = dict(fields=dict(description=description)) self.assertEqual(description, service.body(issue)) @@ -123,10 +122,9 @@ def get_extra_fields(self): def test_to_taskwarrior(self): arbitrary_url = 'http://one' arbitrary_extra = { - 'jira_version': 5, 'annotations': ['an annotation'], 'body': 'issue body', - 'extra_fields': self.get_extra_fields(), + 'sprint_field_names': [], } issue = self.service.get_issue_for_record( @@ -175,9 +173,8 @@ def test_to_taskwarrior_sprint_with_goal(self): ] arbitrary_url = 'http://one' arbitrary_extra = { - 'jira_version': 5, 'annotations': ['an annotation'], - 'extra_fields': self.get_extra_fields() + 'sprint_field_names': self.service.sprint_field_names, } issue = self.service.get_issue_for_record( @@ -245,7 +242,8 @@ def test_issues(self): def test_get_due(self): issue = self.service.get_issue_for_record( - self.arbitrary_record_with_due + self.arbitrary_record_with_due, + extra={'sprint_field_names': self.service.sprint_field_names}, ) self.assertEqual(issue.get_due(), datetime.datetime( 2016, 9, 23, 16, 8, tzinfo=tzutc()))