コード例 #1
0
ファイル: new_test.py プロジェクト: stephendonner/catapult
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, '*****@*****.**')
コード例 #2
0
ファイル: new_test.py プロジェクト: fridamat/catapult
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))
コード例 #3
0
ファイル: new_test.py プロジェクト: genovia/catapult
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, '*****@*****.**')
コード例 #4
0
 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')
コード例 #5
0
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)
コード例 #6
0
 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')