class NewTest(_NewTest): @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost(self): response = self.testapp.post('/api/new', _BASE_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.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_NoConfiguration(self): request = dict(_BASE_REQUEST) request.update(_CONFIGURATION_ARGUMENTS) del request['configuration'] response = self.testapp.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.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_AutoExploreTrue(self): params = {} params.update(_BASE_REQUEST) params['auto_explore'] = True response = self.testapp.post('/api/new', params, status=200) result = json.loads(response.body) self.assertIn('jobId', result) job = job_module.JobFromId(result['jobId']) self.assertTrue(job.auto_explore) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_ComparisonModeFunctional(self): request = dict(_BASE_REQUEST) request['comparison_mode'] = 'functional' response = self.testapp.post('/api/new', request, status=200) result = json.loads(response.body) self.assertIn('jobId', result) job = job_module.JobFromId(result['jobId']) self.assertEqual(job.comparison_mode, job_module.ComparisonMode.FUNCTIONAL) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_ComparisonModePerformance(self): request = dict(_BASE_REQUEST) request['comparison_mode'] = 'performance' response = self.testapp.post('/api/new', request, status=200) result = json.loads(response.body) self.assertIn('jobId', result) job = job_module.JobFromId(result['jobId']) self.assertEqual(job.comparison_mode, job_module.ComparisonMode.PERFORMANCE) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_ComparisonModeUnknown(self): request = dict(_BASE_REQUEST) request['comparison_mode'] = 'invalid comparison mode' response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_WithChanges(self): base_request = {} base_request.update(_BASE_REQUEST) del base_request['start_git_hash'] del base_request['end_git_hash'] base_request['changes'] = json.dumps([{ 'commits': [{ 'repository': 'src', 'git_hash': '1' }] }, { 'commits': [{ 'repository': 'src', 'git_hash': '3' }] }]) response = self.testapp.post('/api/new', base_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.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch('dashboard.pinpoint.models.change.patch.FromDict') def testPost_WithPatch(self, mock_patch): mock_patch.return_value = None params = {'patch': 'https://lalala/c/foo/bar/+/123'} params.update(_BASE_REQUEST) response = self.testapp.post('/api/new', params, 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(params['patch']) def testPost_MissingTarget(self): request = dict(_BASE_REQUEST) del request['target'] response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_InvalidTestConfig(self): request = dict(_BASE_REQUEST) del request['configuration'] response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object( gitiles_service, 'CommitInfo', mock.MagicMock(side_effect=gitiles_service.NotFoundError('message'))) def testPost_InvalidChange(self): response = self.testapp.post('/api/new', _BASE_REQUEST, status=400) self.assertEqual({'error': 'message'}, json.loads(response.body)) def testPost_InvalidBug(self): request = dict(_BASE_REQUEST) request['bug_id'] = 'not_an_int' response = self.testapp.post('/api/new', request, status=400) self.assertEqual({'error': new._ERROR_BUG_ID}, json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_EmptyBug(self): request = dict(_BASE_REQUEST) request['bug_id'] = '' response = self.testapp.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']) job = job_module.JobFromId(result['jobId']) self.assertIsNone(job.bug_id) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_ValidTags(self): request = dict(_BASE_REQUEST) request['tags'] = json.dumps({'key': 'value'}) response = self.testapp.post('/api/new', request, status=200) result = json.loads(response.body) self.assertIn('jobId', result) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_InvalidTags(self): request = dict(_BASE_REQUEST) request['tags'] = json.dumps(['abc']) response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_InvalidTagType(self): request = dict(_BASE_REQUEST) request['tags'] = json.dumps({'abc': 123}) response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_UserFromParams(self): request = dict(_BASE_REQUEST) request['user'] = '******' response = self.testapp.post('/api/new', request, status=200) result = json.loads(response.body) job = job_module.JobFromId(result['jobId']) self.assertEqual(job.user, '*****@*****.**') @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_UserFromAuth(self): response = self.testapp.post('/api/new', _BASE_REQUEST, status=200) result = json.loads(response.body) job = job_module.JobFromId(result['jobId']) self.assertEqual(job.user, '*****@*****.**')
class NewTest(testing_common.TestCase): def setUp(self): super(NewTest, self).setUp() app = webapp2.WSGIApplication([ webapp2.Route(r'/api/new', new.New), ]) self.testapp = webtest.TestApp(app) self.SetCurrentUser('*****@*****.**', is_admin=True) namespaced_stored_object.Set( 'bot_configurations', { 'chromium-rel-mac11-pro': { 'browser': 'release', 'builder': 'Mac Builder', 'dimensions': {}, }, }) namespaced_stored_object.Set( 'repositories', { 'catapult': { 'repository_url': 'http://catapult' }, 'src': { 'repository_url': 'http://src' }, }) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch.object(gitiles_service, 'CommitRange') def testPost(self, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] response = self.testapp.post('/api/new', _BASE_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.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch.object(gitiles_service, 'CommitRange') def testPost_WithChanges(self, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] base_request = {} base_request.update(_BASE_REQUEST) del base_request['start_git_hash'] del base_request['start_repository'] del base_request['end_git_hash'] del base_request['end_repository'] base_request['changes'] = json.dumps([{ 'commits': [{ 'repository': 'src', 'git_hash': '1' }] }, { 'commits': [{ 'repository': 'src', 'git_hash': '3' }] }]) response = self.testapp.post('/api/new', base_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.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch.object(gitiles_service, 'CommitRange') @mock.patch('dashboard.pinpoint.models.change.patch.FromDict') def testPost_WithPatch(self, mock_patch, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] mock_patch.return_value = None params = {'patch': 'https://lalala/c/foo/bar/+/123'} params.update(_BASE_REQUEST) response = self.testapp.post('/api/new', params, 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(params['patch']) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) def testPost_MissingTarget(self): request = dict(_BASE_REQUEST) del request['target'] response = self.testapp.post('/api/new', request, status=200) self.assertIn('error', json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_InvalidTestConfig(self): request = dict(_BASE_REQUEST) del request['configuration'] response = self.testapp.post('/api/new', request, status=200) self.assertIn('error', json.loads(response.body)) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch.object( gitiles_service, 'CommitInfo', mock.MagicMock(side_effect=gitiles_service.NotFoundError('message'))) def testPost_InvalidChange(self): response = self.testapp.post('/api/new', _BASE_REQUEST, status=200) self.assertEqual({'error': 'message'}, json.loads(response.body)) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) def testPost_InvalidBug(self): request = dict(_BASE_REQUEST) request['bug_id'] = 'not_an_int' response = self.testapp.post('/api/new', request, status=200) self.assertEqual({'error': new._ERROR_BUG_ID}, json.loads(response.body)) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch.object(gitiles_service, 'CommitRange') def testPost_EmptyBug(self, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] request = dict(_BASE_REQUEST) request['bug_id'] = '' response = self.testapp.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']) job = job_module.Job.query().get() self.assertEqual(None, job.bug_id) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch.object(gitiles_service, 'CommitRange') def testPost_ValidTags(self, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] request = dict(_BASE_REQUEST) request['tags'] = json.dumps({'key': 'value'}) response = self.testapp.post('/api/new', request, status=200) result = json.loads(response.body) self.assertIn('jobId', result) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch.object(gitiles_service, 'CommitRange') def testPost_InvalidTags(self, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] request = dict(_BASE_REQUEST) request['tags'] = json.dumps(['abc']) response = self.testapp.post('/api/new', request, status=200) self.assertIn('error', json.loads(response.body)) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch.object(gitiles_service, 'CommitRange') def testPost_InvalidTagType(self, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] request = dict(_BASE_REQUEST) request['tags'] = json.dumps({'abc': 123}) response = self.testapp.post('/api/new', request, status=200) self.assertIn('error', json.loads(response.body))
class NewTest(_NewTest): @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost(self): response = self.testapp.post('/api/new', _BASE_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.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_NoConfiguration(self): # TODO: Make this test agnostic to the parameters the Quests take. request = dict(_BASE_REQUEST) request.update({ 'builder': 'Mac Builder', 'dimensions': '{"key": "value"}', 'browser': 'android-webview', 'repository': 'src', }) del request['configuration'] response = self.testapp.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.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_AutoExploreTrue(self): params = {} params.update(_BASE_REQUEST) params['auto_explore'] = True response = self.testapp.post('/api/new', params, status=200) result = json.loads(response.body) self.assertIn('jobId', result) job = job_module.JobFromId(result['jobId']) self.assertTrue(job.auto_explore) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_WithChanges(self): base_request = {} base_request.update(_BASE_REQUEST) del base_request['start_git_hash'] del base_request['end_git_hash'] base_request['changes'] = json.dumps([{ 'commits': [{ 'repository': 'src', 'git_hash': '1' }] }, { 'commits': [{ 'repository': 'src', 'git_hash': '3' }] }]) response = self.testapp.post('/api/new', base_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.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) @mock.patch('dashboard.pinpoint.models.change.patch.FromDict') def testPost_WithPatch(self, mock_patch): mock_patch.return_value = None params = {'patch': 'https://lalala/c/foo/bar/+/123'} params.update(_BASE_REQUEST) response = self.testapp.post('/api/new', params, 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(params['patch']) def testPost_MissingTarget(self): request = dict(_BASE_REQUEST) del request['target'] response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_InvalidTestConfig(self): request = dict(_BASE_REQUEST) del request['configuration'] response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object( gitiles_service, 'CommitInfo', mock.MagicMock(side_effect=gitiles_service.NotFoundError('message'))) def testPost_InvalidChange(self): response = self.testapp.post('/api/new', _BASE_REQUEST, status=400) self.assertEqual({'error': 'message'}, json.loads(response.body)) def testPost_InvalidBug(self): request = dict(_BASE_REQUEST) request['bug_id'] = 'not_an_int' response = self.testapp.post('/api/new', request, status=400) self.assertEqual({'error': new._ERROR_BUG_ID}, json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_EmptyBug(self): request = dict(_BASE_REQUEST) request['bug_id'] = '' response = self.testapp.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']) job = job_module.JobFromId(result['jobId']) self.assertIsNone(job.bug_id) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_ValidTags(self): request = dict(_BASE_REQUEST) request['tags'] = json.dumps({'key': 'value'}) response = self.testapp.post('/api/new', request, status=200) result = json.loads(response.body) self.assertIn('jobId', result) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_InvalidTags(self): request = dict(_BASE_REQUEST) request['tags'] = json.dumps(['abc']) response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_InvalidTagType(self): request = dict(_BASE_REQUEST) request['tags'] = json.dumps({'abc': 123}) response = self.testapp.post('/api/new', request, status=400) self.assertIn('error', json.loads(response.body)) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_UserFromParams(self): request = dict(_BASE_REQUEST) request['user'] = '******' response = self.testapp.post('/api/new', request, status=200) result = json.loads(response.body) job = job_module.JobFromId(result['jobId']) self.assertEqual(job.user, '*****@*****.**') @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock(return_value={'commit': 'abc'})) def testPost_UserFromAuth(self): response = self.testapp.post('/api/new', _BASE_REQUEST, status=200) result = json.loads(response.body) job = job_module.JobFromId(result['jobId']) self.assertEqual(job.user, '*****@*****.**')
def testNotFound(self, mock_fetch): mock_fetch.side_effect = gitiles_service.NotFoundError() with self.assertRaises(gitiles_service.NotFoundError): gitiles_service.FileContents('repo', 'commit_hash', 'path')
class NewTest(testing_common.TestCase): def setUp(self): super(NewTest, self).setUp() app = webapp2.WSGIApplication([ webapp2.Route(r'/api/new', new.New), ]) self.testapp = webtest.TestApp(app) self.SetCurrentUser('*****@*****.**', is_admin=True) namespaced_stored_object.Set( 'repositories', { 'catapult': { 'repository_url': 'http://catapult' }, 'src': { 'repository_url': 'http://src' }, }) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitRange') def testPost(self, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] response = self.testapp.post('/api/new', _BASE_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.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) def testPost_MissingTarget(self): request = dict(_BASE_REQUEST) del request['target'] response = self.testapp.post('/api/new', request, status=200) self.assertIn('error', json.loads(response.body)) def testPost_InvalidTestConfig(self): request = dict(_BASE_REQUEST) del request['configuration'] response = self.testapp.post('/api/new', request, status=200) self.assertIn('error', json.loads(response.body)) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch.object( gitiles_service, 'CommitInfo', mock.MagicMock(side_effect=gitiles_service.NotFoundError('message'))) def testPost_InvalidChange(self): response = self.testapp.post('/api/new', _BASE_REQUEST, status=200) self.assertEqual({'error': 'message'}, json.loads(response.body)) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) def testPost_InvalidRepeatCount(self): request = dict(_BASE_REQUEST) request['repeat_count'] = 'not_an_int' response = self.testapp.post('/api/new', request, status=200) self.assertIn('error', json.loads(response.body)) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) def testPost_InvalidBug(self): request = dict(_BASE_REQUEST) request['bug_id'] = 'not_an_int' response = self.testapp.post('/api/new', request, status=200) self.assertEqual({'error': new._ERROR_BUG_ID}, json.loads(response.body)) @mock.patch.object(api_auth, '_AuthorizeOauthUser', mock.MagicMock()) @mock.patch('dashboard.services.issue_tracker_service.IssueTrackerService', mock.MagicMock()) @mock.patch.object(utils, 'ServiceAccountHttp', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitInfo', mock.MagicMock()) @mock.patch.object(gitiles_service, 'CommitRange') def testPost_EmptyBug(self, mock_commit_range): mock_commit_range.return_value = [ { 'commit': '1' }, { 'commit': '2' }, { 'commit': '3' }, ] request = dict(_BASE_REQUEST) request['bug_id'] = '' response = self.testapp.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']) job = job_module.Job.query().get() self.assertEqual(None, job.bug_id)
def testNotFound(self, mock_fetch): mock_fetch.side_effect = gitiles_service.NotFoundError() with self.assertRaises(gitiles_service.NotFoundError): gitiles_service.FileContents( 'https://chromium.googlesource.com/repo', 'commit_hash', 'path')