Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3227)

Unified Diff: appengine/findit/waterfall/test/try_job_pipeline_test.py

Issue 1591003002: [Findit] Modify tryjob pipelines to trigger try jobs for test failure. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase and address conflicts. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)

Powered by Google App Engine
This is Rietveld 408576698