 de2045f315
			
		
	
	de2045f315
	
	
	
		
			
			* Correct issue when bugs assigned to multiple projects get mapped to the latest author * Process bugs assigned to milestones (treat them as branches) * Improve UI: highlight the link, use colors for statuses Closes bug 1473638 Change-Id: I5e583053cb9250b967988a4cfc57c23739742e47
		
			
				
	
	
		
			222 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			222 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2015 Mirantis Inc.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #   http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 | |
| # implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| 
 | |
| import json
 | |
| import mock
 | |
| import testtools
 | |
| 
 | |
| from stackalytics.processor import bps
 | |
| 
 | |
| 
 | |
| BUG = json.loads("""
 | |
| {
 | |
|     "date_closed": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "date_assigned": "2015-06-02T17:31:44.957976+00:00",
 | |
|     "title": "Bug #1458945 in Sahara: \\\"Use graduated oslo.policy\\\"",
 | |
|     "bug_link": "https://api.launchpad.net/devel/bugs/1458945",
 | |
|     "bug_watch_link": null,
 | |
|     "milestone_link": null,
 | |
|     "date_left_closed": null,
 | |
|     "date_fix_committed": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "date_fix_released": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "date_in_progress": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "resource_type_link": "https://api.launchpad.net/devel/#bug_task",
 | |
|     "status": "Fix Released",
 | |
|     "bug_target_name": "sahara",
 | |
|     "importance": "Medium",
 | |
|     "assignee_link": "https://api.launchpad.net/devel/~slukjanov",
 | |
|     "date_triaged": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "self_link": "https://api.launchpad.net/devel/sahara/+bug/1458945",
 | |
|     "target_link": "https://api.launchpad.net/devel/sahara",
 | |
|     "bug_target_display_name": "Sahara",
 | |
|     "related_tasks_collection_link":
 | |
|       "https://api.launchpad.net/devel/sahara/+bug/1458945/related_tasks",
 | |
|     "date_confirmed": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "date_left_new": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "web_link": "https://bugs.launchpad.net/sahara/+bug/1458945",
 | |
|     "owner_link": "https://api.launchpad.net/devel/~samueldmq",
 | |
|     "date_created": "2015-06-02T13:35:54.101235+00:00",
 | |
|     "date_incomplete": null,
 | |
|     "is_complete": true
 | |
| }
 | |
| """)
 | |
| 
 | |
| ANOTHER_MILESTONE_BUG = json.loads("""
 | |
| {
 | |
|     "date_closed": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "date_assigned": "2015-06-02T17:31:44.957976+00:00",
 | |
|     "title": "Bug #1458945 in Sahara Kilo: \\\"Use graduated oslo.policy\\\"",
 | |
|     "bug_link": "https://api.launchpad.net/devel/bugs/1458945",
 | |
|     "bug_watch_link": null,
 | |
|     "milestone_link": null,
 | |
|     "date_left_closed": null,
 | |
|     "date_fix_committed": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "date_fix_released": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "date_in_progress": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "resource_type_link": "https://api.launchpad.net/devel/#bug_task",
 | |
|     "status": "Fix Released",
 | |
|     "bug_target_name": "sahara/kilo",
 | |
|     "importance": "Medium",
 | |
|     "assignee_link": "https://api.launchpad.net/devel/~slukjanov",
 | |
|     "date_triaged": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "self_link": "https://api.launchpad.net/devel/sahara/kilo/+bug/1458945",
 | |
|     "target_link": "https://api.launchpad.net/devel/sahara/kilo",
 | |
|     "bug_target_display_name": "Sahara Kilo",
 | |
|     "related_tasks_collection_link":
 | |
|       "https://api.launchpad.net/devel/sahara/kilo/+bug/1458945/related_tasks",
 | |
|     "date_confirmed": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "date_left_new": "2015-06-02T17:31:05.820479+00:00",
 | |
|     "web_link": "https://bugs.launchpad.net/sahara/kilo/+bug/1458945",
 | |
|     "owner_link": "https://api.launchpad.net/devel/~samueldmq",
 | |
|     "date_created": "2015-06-02T13:35:54.101235+00:00",
 | |
|     "date_incomplete": null,
 | |
|     "is_complete": true
 | |
| }
 | |
| """)
 | |
| 
 | |
| LINKED_BUG = json.loads("""
 | |
| {
 | |
|     "date_closed": "2015-06-24T20:59:57.982386+00:00",
 | |
|     "date_assigned": "2015-06-18T06:46:03.741208+00:00",
 | |
|     "title": "Bug #1458945 in Barbican: \\\"Use graduated oslo.policy\\\"",
 | |
|     "bug_link": "https://api.launchpad.net/devel/bugs/1458945",
 | |
|     "bug_watch_link": null,
 | |
|     "milestone_link":
 | |
|       "https://api.launchpad.net/devel/barbican/+milestone/liberty-1",
 | |
|     "date_left_closed": null,
 | |
|     "date_fix_committed": "2015-06-18T06:45:39.997949+00:00",
 | |
|     "date_fix_released": "2015-06-24T20:59:57.982386+00:00",
 | |
|     "date_in_progress": "2015-06-18T06:45:39.997949+00:00",
 | |
|     "resource_type_link": "https://api.launchpad.net/devel/#bug_task",
 | |
|     "status": "Fix Released",
 | |
|     "bug_target_name": "barbican",
 | |
|     "importance": "Medium",
 | |
|     "assignee_link": "https://api.launchpad.net/devel/~juan-osorio-robles",
 | |
|     "date_triaged": "2015-06-18T06:45:39.997949+00:00",
 | |
|     "self_link": "https://api.launchpad.net/devel/barbican/+bug/1458945",
 | |
|     "target_link": "https://api.launchpad.net/devel/barbican",
 | |
|     "bug_target_display_name": "Barbican",
 | |
|     "related_tasks_collection_link":
 | |
|       "https://api.launchpad.net/devel/barbican/+bug/1458945/related_tasks",
 | |
|     "date_confirmed": "2015-06-18T06:45:39.997949+00:00",
 | |
|     "date_left_new": "2015-06-18T06:45:39.997949+00:00",
 | |
|     "web_link": "https://bugs.launchpad.net/barbican/+bug/1458945",
 | |
|     "owner_link": "https://api.launchpad.net/devel/~samueldmq",
 | |
|     "date_created": "2015-05-26T17:47:32.438795+00:00",
 | |
|     "date_incomplete": null,
 | |
|     "is_complete": true
 | |
| }
 | |
| """)
 | |
| 
 | |
| 
 | |
| class TestBps(testtools.TestCase):
 | |
|     def setUp(self):
 | |
|         super(TestBps, self).setUp()
 | |
|         p_module_exists = mock.patch(
 | |
|             'stackalytics.processor.launchpad_utils.lp_module_exists')
 | |
|         m_module_exists = p_module_exists.start()
 | |
|         m_module_exists.return_value = True
 | |
| 
 | |
|     @mock.patch('stackalytics.processor.launchpad_utils.lp_bug_generator')
 | |
|     def test_log(self, lp_bug_generator):
 | |
|         repo = {
 | |
|             'module': 'sahara'
 | |
|         }
 | |
|         modified_since = 1234567890
 | |
|         lp_bug_generator.return_value = iter([BUG])
 | |
| 
 | |
|         expected = [{
 | |
|             'assignee': 'slukjanov',
 | |
|             'date_created': 1433252154,
 | |
|             'date_fix_committed': 1433266265,
 | |
|             'id': 'sahara/1458945',
 | |
|             'importance': 'Medium',
 | |
|             'module': 'sahara',
 | |
|             'owner': 'samueldmq',
 | |
|             'status': 'Fix Released',
 | |
|             'title': 'Bug #1458945 in Sahara: "Use graduated oslo.policy"',
 | |
|             'web_link': 'https://bugs.launchpad.net/sahara/+bug/1458945'
 | |
|         }]
 | |
| 
 | |
|         actual = list(bps.log(repo, modified_since))
 | |
| 
 | |
|         self.assertEqual(expected, actual)
 | |
| 
 | |
|     @mock.patch('stackalytics.processor.launchpad_utils.lp_bug_generator')
 | |
|     def test_log_additional_module(self, lp_bug_generator):
 | |
|         # bug linked to another project should not appear
 | |
|         repo = {
 | |
|             'module': 'sahara'
 | |
|         }
 | |
|         modified_since = 1234567890
 | |
|         lp_bug_generator.return_value = iter([BUG, LINKED_BUG])
 | |
| 
 | |
|         expected = [{
 | |
|             'assignee': 'slukjanov',
 | |
|             'date_created': 1433252154,
 | |
|             'date_fix_committed': 1433266265,
 | |
|             'id': 'sahara/1458945',
 | |
|             'importance': 'Medium',
 | |
|             'module': 'sahara',
 | |
|             'owner': 'samueldmq',
 | |
|             'status': 'Fix Released',
 | |
|             'title': 'Bug #1458945 in Sahara: "Use graduated oslo.policy"',
 | |
|             'web_link': 'https://bugs.launchpad.net/sahara/+bug/1458945'
 | |
|         }]
 | |
| 
 | |
|         actual = list(bps.log(repo, modified_since))
 | |
| 
 | |
|         self.assertEqual(expected, actual)
 | |
| 
 | |
|     @mock.patch('stackalytics.processor.launchpad_utils.lp_bug_generator')
 | |
|     def test_log_additional_milestone(self, lp_bug_generator):
 | |
|         # bug linked to different milestone should be mapped to the release
 | |
|         repo = {
 | |
|             'module': 'sahara'
 | |
|         }
 | |
|         modified_since = 1234567890
 | |
|         lp_bug_generator.return_value = iter([BUG, ANOTHER_MILESTONE_BUG])
 | |
| 
 | |
|         expected = [{
 | |
|             'assignee': 'slukjanov',
 | |
|             'date_created': 1433252154,
 | |
|             'date_fix_committed': 1433266265,
 | |
|             'id': 'sahara/1458945',
 | |
|             'importance': 'Medium',
 | |
|             'module': 'sahara',
 | |
|             'owner': 'samueldmq',
 | |
|             'status': 'Fix Released',
 | |
|             'title': 'Bug #1458945 in Sahara: "Use graduated oslo.policy"',
 | |
|             'web_link': 'https://bugs.launchpad.net/sahara/+bug/1458945'
 | |
|         }, {
 | |
|             'assignee': 'slukjanov',
 | |
|             'date_created': 1433252154,
 | |
|             'date_fix_committed': 1433266265,
 | |
|             'id': 'sahara/kilo/1458945',
 | |
|             'importance': 'Medium',
 | |
|             'module': 'sahara',
 | |
|             'release': 'kilo',
 | |
|             'owner': 'samueldmq',
 | |
|             'status': 'Fix Released',
 | |
|             'title': 'Bug #1458945 in Sahara Kilo: '
 | |
|                      '"Use graduated oslo.policy"',
 | |
|             'web_link': 'https://bugs.launchpad.net/sahara/kilo/+bug/1458945'
 | |
| 
 | |
|         }]
 | |
| 
 | |
|         actual = list(bps.log(repo, modified_since))
 | |
| 
 | |
|         self.assertEqual(expected, actual)
 |