Chromium Code Reviews| Index: appengine/findit/waterfall/test/try_job_pipeline_test.py |
| diff --git a/appengine/findit/waterfall/test/try_job_pipeline_test.py b/appengine/findit/waterfall/test/try_job_pipeline_test.py |
| index 6911498218f0910c46cf5e796324a24ebd035362..d1898a6d0a14ad0710e5c7e6f831b9579928cd5a 100644 |
| --- a/appengine/findit/waterfall/test/try_job_pipeline_test.py |
| +++ b/appengine/findit/waterfall/test/try_job_pipeline_test.py |
| @@ -1,10 +1,11 @@ |
| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| - |
| +import json |
| from testing_utils import testing |
| from common import buildbucket_client |
| +from common.git_repository import GitRepository |
| from model import wf_analysis_status |
| from model.wf_try_job import WfTryJob |
| from pipeline_wrapper import pipeline_handlers |
| @@ -23,15 +24,15 @@ class TryJobPipelineTest(testing.AppengineTestCase): |
| def _Mock_TriggerTryJobs(self, responses): |
| def Mocked_TriggerTryJobs(*_): |
| - compile_results = [] |
| + try_job_results = [] |
| for response in responses: |
| if response.get('error'): # pragma: no cover |
| - compile_results.append(( |
| + try_job_results.append(( |
| buildbucket_client.BuildbucketError(response['error']), None)) |
| else: |
| - compile_results.append(( |
| + try_job_results.append(( |
| None, buildbucket_client.BuildbucketBuild(response['build']))) |
| - return compile_results |
| + return try_job_results |
| self.mock(buildbucket_client, 'TriggerTryJobs', Mocked_TriggerTryJobs) |
| def _Mock_GetTryJobs(self, build_id): |
| @@ -54,23 +55,33 @@ class TryJobPipelineTest(testing.AppengineTestCase): |
| } |
| } |
| } |
| - compile_results = [] |
| + try_job_results = [] |
| build_error = data.get(build_id) |
| if build_error.get('error'): # pragma: no cover |
| - compile_results.append(( |
| + try_job_results.append(( |
| buildbucket_client.BuildbucketError(build_error['error']), None)) |
| else: |
| - compile_results.append(( |
| + try_job_results.append(( |
| None, buildbucket_client.BuildbucketBuild(build_error['build']))) |
| - return compile_results |
| + return try_job_results |
| self.mock(buildbucket_client, 'GetTryJobs', Mocked_GetTryJobs) |
| + def _Mock_GetChangeLog(self, revision): |
| + def Mocked_GetChangeLog(*_): |
| + class MockedChangeLog(object): |
| + def __init__(self, commit_position, code_review_url): |
| + self.commit_position = commit_position |
| + self.code_review_url = code_review_url |
| + |
| + mock_change_logs = {} |
| + mock_change_logs['rev2'] = MockedChangeLog('2', 'url_2') |
| + return mock_change_logs.get(revision) |
| + self.mock(GitRepository, 'GetChangeLog', Mocked_GetChangeLog) |
| + |
| def testSuccessfullyScheduleNewTryJobForCompile(self): |
| master_name = 'm' |
| builder_name = 'b' |
| build_number = 1 |
| - good_revision = 'rev1' |
| - bad_revision = 'rev2' |
| responses = [ |
| { |
| @@ -84,18 +95,19 @@ class TryJobPipelineTest(testing.AppengineTestCase): |
| self._Mock_GetTrybotForWaterfallBuilder(master_name, builder_name) |
| self._Mock_TriggerTryJobs(responses) |
| self._Mock_GetTryJobs('1') |
| + self._Mock_GetChangeLog('rev2') |
| WfTryJob.Create(master_name, builder_name, build_number).put() |
| root_pipeline = TryJobPipeline( |
| - master_name, builder_name, build_number, good_revision, bad_revision, |
| - []) |
| + master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'], |
| + 'compile', []) |
| root_pipeline.start() |
| self.execute_queued_tasks() |
| try_job = WfTryJob.Get(master_name, builder_name, build_number) |
| - expected_compile_results = [ |
| + expected_try_job_results = [ |
| { |
| 'report': [ |
| ['rev1', 'passed'], |
| @@ -103,9 +115,15 @@ class TryJobPipelineTest(testing.AppengineTestCase): |
| ], |
| 'url': 'url', |
| 'try_job_id': '1', |
| + 'culprit': { |
| + 'revision': 'rev2', |
| + 'commit_position': '2', |
| + 'review_url': 'url_2' |
| + } |
| } |
| ] |
| - self.assertEqual(expected_compile_results, try_job.compile_results) |
| + print json.dumps(try_job.compile_results, indent=4) |
|
stgao
2016/02/01 19:09:01
This should be removed before commit.
chanli
2016/02/01 22:01:49
Done.
|
| + self.assertEqual(expected_try_job_results, try_job.compile_results) |
| def testPipelineAbortedWithTryJobResult(self): |
| master_name = 'm' |
| @@ -115,7 +133,8 @@ class TryJobPipelineTest(testing.AppengineTestCase): |
| WfTryJob.Create(master_name, builder_name, build_number).put() |
| root_pipeline = TryJobPipeline( |
| - master_name, builder_name, build_number, 'rev1', 'rev2', []) |
| + master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'], |
| + 'compile', []) |
| root_pipeline._LogUnexpectedAbort(True) |
| try_job = WfTryJob.Get(master_name, builder_name, build_number) |
| @@ -127,7 +146,8 @@ class TryJobPipelineTest(testing.AppengineTestCase): |
| build_number = 1 |
| root_pipeline = TryJobPipeline( |
| - master_name, builder_name, build_number, 'rev1', 'rev2', []) |
| + master_name, builder_name, build_number, 'rev1', 'rev2', ['rev2'], |
| + 'compile', []) |
| root_pipeline._LogUnexpectedAbort(True) |
| try_job = WfTryJob.Get(master_name, builder_name, build_number) |