def testCompletedDoesNotReopen(self, differences, result_values, patch_as_dict): commits = (change.Commit('chromium', 'git_hash'), ) patch = change.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change(commits, patch) differences.return_value = [(None, c)] result_values.side_effect = [40], [20] patch_as_dict.return_value = { 'url': 'https://codereview.com/c/672011/2f0d5c7', 'author': '*****@*****.**', 'subject': 'Subject.', 'message': 'Subject.\n\nCommit message.', } self.get_issue.return_value = {'status': 'Fixed'} j = job.Job.New((), (), bug_id=123456, comparison_mode='performance') j.Run() self.ExecuteDeferredTasks('default') self.assertFalse(j.failed) self.add_bug_comment.assert_called_once_with( 123456, mock.ANY, owner=None, status=None, cc_list=['*****@*****.**'], labels=mock.ANY, merge_issue=None, project='chromium') message = self.add_bug_comment.call_args[0][1] self.assertIn('10 revisions compared', message) labels = self.add_bug_comment.call_args[1]['labels'] self.assertIn('Pinpoint-Job-Completed', labels) self.assertNotIn('-Pinpoint-Job-Completed', labels) self.assertIn('Pinpoint-Culprit-Found', labels) self.assertNotIn('-Pinpoint-Culprit-Found', labels)
def testCompletedDoesNotReassign(self, differences, result_values, patch_as_dict): commits = (change.Commit('chromium', 'git_hash'), ) patch = change.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change(commits, patch) c = change.Change(commits, patch) differences.return_value = [(None, c)] result_values.side_effect = [0], [1.23456] patch_as_dict.return_value = { 'author': '*****@*****.**', 'subject': 'Subject.', 'url': 'https://codereview.com/c/672011/2f0d5c7', 'git_hash': 'abc123' } self.get_issue.return_value = {'status': 'Assigned'} j = job.Job.New((), (), bug_id=123456, comparison_mode='performance') j.Run() self.add_bug_comment.assert_called_once_with( 123456, _COMMENT_COMPLETED_WITH_PATCH, cc_list=['*****@*****.**'], merge_issue=None)
def testCompletedDoesNotReassign( self, differences, result_values, patch_as_dict): commits = (change.Commit('chromium', 'git_hash'),) patch = change.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change(commits, patch) c = change.Change(commits, patch) differences.return_value = [(None, c)] result_values.side_effect = [40], [20] patch_as_dict.return_value = { 'url': 'https://codereview.com/c/672011/2f0d5c7', 'author': '*****@*****.**', 'subject': 'Subject.', 'message': 'Subject.\n\nCommit message.', } self.get_issue.return_value = {'status': 'Assigned'} j = job.Job.New((), (), bug_id=123456, comparison_mode='performance') j.Run() self.ExecuteDeferredTasks('default') self.assertFalse(j.failed) self.add_bug_comment.assert_called_once_with( 123456, _COMMENT_COMPLETED_WITH_PATCH, owner=None, status=None, cc_list=['*****@*****.**'], labels=['Pinpoint-Culprit-Found'], merge_issue=None, project='chromium')
def testWithPatch(self, mock_patch): mock_patch.return_value = change_module.GerritPatch( 'https://lalala', '123', None) request = dict(_BASE_REQUEST) request['patch'] = 'https://lalala/c/foo/bar/+/123' response = self.Post('/api/new', request, status=200) result = json.loads(response.body) self.assertIn('jobId', result) self.assertEqual( result['jobUrl'], 'https://testbed.example.com/job/%s' % result['jobId']) mock_patch.assert_called_with(request['patch']) job = job_module.JobFromId(result['jobId']) self.assertEqual('123', job.gerrit_change_id) self.assertEqual('https://lalala', job.gerrit_server)
def testBuildLifecycle(self, build_parameters, put, get_job_status): change = change_module.Change( (change_module.Commit('src', 'base git hash'), change_module.Commit('v8', 'dep git hash')), patch=change_module.GerritPatch('https://example.org', 672011, '2f0d')) quest = find_isolate.FindIsolate('Mac Builder', 'telemetry_perf_tests') execution = quest.Start(change) # Request a build. build_parameters.return_value = {'patch_storage': 'gerrit'} put.return_value = {'build': {'id': 'build_id'}} execution.Poll() self.assertFalse(execution.completed) put.assert_called_once_with( find_isolate.BUCKET, { 'builder_name': 'Mac Builder', 'properties': { 'clobber': True, 'parent_got_revision': 'base git hash', 'deps_revision_overrides': { 'https://chromium.googlesource.com/v8/v8': 'dep git hash', }, 'patch_storage': 'gerrit', } }) # Check build status. get_job_status.return_value = {'build': {'status': 'STARTED'}} execution.Poll() self.assertFalse(execution.completed) get_job_status.assert_called_once_with('build_id') # Look up isolate hash. isolate.Put('https://isolate.server', (('Mac Builder', change, 'telemetry_perf_tests', 'isolate git hash'), )) execution.Poll() self.assertExecutionSuccess(execution)
def testCompletedWithPatch(self, differences, patch_as_dict): commits = (change.Commit('chromium', 'git_hash'),) patch = change.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change(commits, patch) differences.return_value = [(1, c)] patch_as_dict.return_value = { 'author': '*****@*****.**', 'subject': 'Subject.', 'url': 'https://codereview.com/c/672011/2f0d5c7', } j = job.Job.New({}, [], False, bug_id=123456) j.put() j.Run() self.add_bug_comment.assert_called_once_with( 123456, _COMMENT_COMPLETED_WITH_PATCH, status='Assigned', owner='*****@*****.**', cc_list=['*****@*****.**'])
def testCompletedDoesNotReopen(self, differences, patch_as_dict): commits = (change.Commit('chromium', 'git_hash'),) patch = change.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change(commits, patch) differences.return_value = [(1, c)] patch_as_dict.return_value = { 'author': '*****@*****.**', 'subject': 'Subject.', 'url': 'https://codereview.com/c/672011/2f0d5c7', } self.get_issue.return_value = {'status': 'Fixed'} j = job.Job.New((), (), auto_explore=True, bug_id=123456) j.Run() self.add_bug_comment.assert_called_once_with( 123456, _COMMENT_COMPLETED_WITH_PATCH, cc_list=['*****@*****.**'])
def testCompletedWithPatch(self, differences, patch_as_dict): commits = (change.Commit('chromium', 'git_hash'), ) patch = change.GerritPatch('https://codereview.com', 672011, '2f0d5c7') c = change.Change(commits, patch) differences.return_value = [(c, [0], [1.23456])] patch_as_dict.return_value = { 'author': '*****@*****.**', 'subject': 'Subject.', 'url': 'https://codereview.com/c/672011/2f0d5c7', } self.get_issue.return_value = {'status': 'Untriaged'} j = job.Job.New((), (), bug_id=123456, comparison_mode='performance') j.Run() self.add_bug_comment.assert_called_once_with( 123456, _COMMENT_COMPLETED_WITH_PATCH, status='Assigned', owner='*****@*****.**', cc_list=['*****@*****.**'])
def testBuildLifecycle(self, build_parameters, put, get_job_status): change = change_module.Change( (change_module.Commit('chromium', 'base git hash'), change_module.Commit('catapult', 'dep git hash')), patch=change_module.GerritPatch('https://example.org', 672011, '2f0d')) quest = find_isolate.FindIsolate('Mac Builder', 'telemetry_perf_tests') execution = quest.Start(change) # Request a build. build_parameters.return_value = {'patch_storage': 'gerrit'} put.return_value = {'build': {'id': 'build_id'}} execution.Poll() self.assertFalse(execution.completed) put.assert_called_once_with( find_isolate.BUCKET, { 'builder_name': 'Mac Builder', 'properties': { 'clobber': True, 'parent_got_revision': 'base git hash', 'deps_revision_overrides': { test.CATAPULT_URL: 'dep git hash' }, 'patch_storage': 'gerrit', } }) # Check build status. get_job_status.return_value = { 'build': { 'status': 'STARTED', 'url': 'build_url', } } execution.Poll() self.assertFalse(execution.completed) get_job_status.assert_called_once_with('build_id') # Look up isolate hash. isolate.Put('https://isolate.server', (('Mac Builder', change, 'telemetry_perf_tests', 'isolate git hash'), )) execution.Poll() expected_result_arguments = { 'isolate_server': 'https://isolate.server', 'isolate_hash': 'isolate git hash', } expected_as_dict = { 'completed': True, 'exception': None, 'details': [ { 'key': 'builder', 'value': 'Mac Builder', }, { 'key': 'build', 'value': 'build_id', 'url': 'build_url', }, { 'key': 'isolate', 'value': 'isolate git hash', 'url': 'https://isolate.server/browse?digest=isolate git hash', }, ], } self.assertExecutionSuccess(execution) self.assertEqual(execution.result_values, ()) self.assertEqual(execution.result_arguments, expected_result_arguments) self.assertEqual(execution.AsDict(), expected_as_dict)