| 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 be594dfcaa8d290934b170cf71ad0db9abf9f029..4f4f1af9732a7bd2f9abbdf460540fcb097f05e2 100644
|
| --- a/appengine/findit/waterfall/test/try_job_pipeline_test.py
|
| +++ b/appengine/findit/waterfall/test/try_job_pipeline_test.py
|
| @@ -7,6 +7,7 @@ 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
|
| @@ -25,15 +26,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):
|
| @@ -66,23 +67,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 = [
|
| {
|
| @@ -96,18 +107,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': {
|
| 'result': {
|
| @@ -120,9 +132,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'
|
| @@ -132,7 +149,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)
|
| @@ -144,7 +162,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)
|
|
|