| 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 9440f78b762225230af159ebf25470c7e6009d55..4ac266fc12ef7f9e5d8ad0ec58a5378f97974d19 100644 | 
| --- a/appengine/findit/waterfall/test/try_job_pipeline_test.py | 
| +++ b/appengine/findit/waterfall/test/try_job_pipeline_test.py | 
| @@ -5,6 +5,7 @@ | 
| 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 = [ | 
| { | 
| 'result': [ | 
| ['rev1', 'passed'], | 
| @@ -103,9 +115,14 @@ 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) | 
| +    self.assertEqual(expected_try_job_results, try_job.compile_results) | 
|  | 
| def testPipelineAbortedWithTryJobResult(self): | 
| master_name = 'm' | 
| @@ -115,7 +132,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 +145,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) | 
|  |