diff --git a/grimoire_elk/enriched/bugzilla.py b/grimoire_elk/enriched/bugzilla.py index dd53e12f8..8bcbaf085 100644 --- a/grimoire_elk/enriched/bugzilla.py +++ b/grimoire_elk/enriched/bugzilla.py @@ -153,6 +153,12 @@ def get_rich_item(self, item): if 'votes' in item['data']: eitem['votes'] = item['data']['votes'][0]['__text__'] + # Add keywords + if 'keywords' in item['data'] and '__text__' in item['data']['keywords'][0]: + eitem['keywords'] = item['data']['keywords'][0]['__text__'].split(', ') + else: + eitem['keywords'] = [] + if "assigned_to" in issue: if "name" in issue["assigned_to"][0]: eitem["assigned"] = issue["assigned_to"][0]["name"] diff --git a/grimoire_elk/enriched/bugzillarest.py b/grimoire_elk/enriched/bugzillarest.py index 1d03df8ea..c929df21d 100644 --- a/grimoire_elk/enriched/bugzillarest.py +++ b/grimoire_elk/enriched/bugzillarest.py @@ -124,6 +124,9 @@ def get_rich_item(self, item): eitem["component"] = issue['component'] eitem["product"] = issue['product'] + # Keywords + eitem["keywords"] = issue['keywords'] + # Fix dates date_ts = str_to_datetime(issue['creation_time']) eitem['creation_ts'] = date_ts.strftime('%Y-%m-%dT%H:%M:%S') diff --git a/releases/unreleased/keywords-data-on-enriched-items.yml b/releases/unreleased/keywords-data-on-enriched-items.yml new file mode 100644 index 000000000..2e940fe3b --- /dev/null +++ b/releases/unreleased/keywords-data-on-enriched-items.yml @@ -0,0 +1,8 @@ +--- +title: Keywords data on enriched items +category: added +author: Santiago DueƱas +issue: null +notes: > + Keywords field is included now on the enriched + items of bugzilla and bugzillarest indices. diff --git a/schema/bugzilla.csv b/schema/bugzilla.csv index ed4d4b7c5..187ee6b63 100644 --- a/schema/bugzilla.csv +++ b/schema/bugzilla.csv @@ -56,6 +56,7 @@ id,long is_bugzilla_bug,long is_bugzillarest_bugrest,long is_open,boolean +keywords,keyword labels,list main_description,keyword main_description_analyzed,string,false diff --git a/tests/data/bugzilla.json b/tests/data/bugzilla.json index 4d0f14dae..68612bbf3 100644 --- a/tests/data/bugzilla.json +++ b/tests/data/bugzilla.json @@ -92,7 +92,9 @@ } ], "keywords": [ - {} + { + "__text__": "robotics" + } ], "long_desc": [ { @@ -416,7 +418,9 @@ } ], "keywords": [ - {} + { + "__text__": "robotics, kernel, analytics" + } ], "long_desc": [ { diff --git a/tests/test_bugzilla.py b/tests/test_bugzilla.py index 1b60ce9a3..aaa0afd8e 100644 --- a/tests/test_bugzilla.py +++ b/tests/test_bugzilla.py @@ -75,6 +75,24 @@ def test_enrich_repo_labels(self): eitem = enrich_backend.get_rich_item(item) self.assertIn(REPO_LABELS, eitem) + def test_enrich_keywords(self): + """Test whether keywords are included on the enriched items""" + + self._test_raw_to_enrich() + enrich_backend = self.connectors[self.connector][2]() + + item = self.items[0] + eitem = enrich_backend.get_rich_item(item) + self.assertEqual(eitem['keywords'], ['robotics']) + + item = self.items[1] + eitem = enrich_backend.get_rich_item(item) + self.assertEqual(eitem['keywords'], ['robotics', 'kernel', 'analytics']) + + for item in self.items[2:]: + eitem = enrich_backend.get_rich_item(item) + self.assertEqual(eitem['keywords'], []) + def test_raw_to_enrich_sorting_hat(self): """Test enrich with SortingHat""" diff --git a/tests/test_bugzillarest.py b/tests/test_bugzillarest.py index 3fef0db4a..d996575da 100644 --- a/tests/test_bugzillarest.py +++ b/tests/test_bugzillarest.py @@ -77,6 +77,20 @@ def test_enrich_repo_labels(self): eitem = enrich_backend.get_rich_item(item) self.assertIn(REPO_LABELS, eitem) + def test_enrich_keywords(self): + """Test whether keywords are included on the enriched items""" + + self._test_raw_to_enrich() + enrich_backend = self.connectors[self.connector][2]() + + for item in self.items[0:5]: + eitem = enrich_backend.get_rich_item(item) + self.assertEqual(eitem['keywords'], []) + + item = self.items[6] + eitem = enrich_backend.get_rich_item(item) + self.assertEqual(eitem['keywords'], ['crash', 'regression']) + def test_raw_to_enrich_sorting_hat(self): """Test enrich with SortingHat"""