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

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

Issue 2187763004: [Findit] Refactor Findit pipeline. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: rebase Created 4 years, 4 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/schedule_try_job_pipeline_test.py
diff --git a/appengine/findit/waterfall/test/schedule_try_job_pipeline_test.py b/appengine/findit/waterfall/test/schedule_try_job_pipeline_test.py
index 8f124aa9e46bc2b6ffa513fdcc09630c20d4200e..d6ea7b51da06b9b487d61803110577b96bbf974e 100644
--- a/appengine/findit/waterfall/test/schedule_try_job_pipeline_test.py
+++ b/appengine/findit/waterfall/test/schedule_try_job_pipeline_test.py
@@ -2,30 +2,20 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import mock
+
from common.waterfall import buildbucket_client
+from common.waterfall import failure_type
from model.wf_try_job import WfTryJob
from model.wf_try_job_data import WfTryJobData
+from waterfall import schedule_try_job_pipeline
from waterfall.schedule_try_job_pipeline import ScheduleTryJobPipeline
from waterfall.test import wf_testcase
-from waterfall.try_job_type import TryJobType
class ScheduleTryjobPipelineTest(wf_testcase.WaterfallTestCase):
- def _Mock_TriggerTryJobs(self, responses):
- def MockedTriggerTryJobs(*_):
- results = []
- for response in responses:
- if response.get('error'): # pragma: no cover
- results.append((
- buildbucket_client.BuildbucketError(response['error']), None))
- else:
- results.append((
- None, buildbucket_client.BuildbucketBuild(response['build'])))
- return results
- self.mock(buildbucket_client, 'TriggerTryJobs', MockedTriggerTryJobs)
-
- def testGetBuildPropertiesWithCompileTargets(self):
+ def testGetBuildPropertiesWithSuspectedRevision(self):
master_name = 'm'
builder_name = 'b'
build_number = 1
@@ -35,18 +25,19 @@ class ScheduleTryjobPipelineTest(wf_testcase.WaterfallTestCase):
'good_revision': 1,
'bad_revision': 2,
'target_mastername': master_name,
- 'target_buildername': 'b',
'referenced_build_url': ('https://build.chromium.org/p/%s/builders'
'/%s/builds/%s') % (
- master_name, builder_name, build_number)
+ master_name, builder_name, build_number),
+ 'suspected_revisions': ['rev']
}
try_job_pipeline = ScheduleTryJobPipeline()
properties = try_job_pipeline._GetBuildProperties(
- master_name, builder_name, build_number, 1, 2, TryJobType.COMPILE, None)
+ master_name, builder_name, build_number, 1, 2, failure_type.COMPILE,
+ ['rev'])
self.assertEqual(properties, expected_properties)
- def testGetBuildPropertiesForTestFailure(self):
+ def testGetBuildPropertiesNoSuspectedRevision(self):
master_name = 'm'
builder_name = 'b'
build_number = 1
@@ -56,96 +47,54 @@ class ScheduleTryjobPipelineTest(wf_testcase.WaterfallTestCase):
'good_revision': 1,
'bad_revision': 2,
'target_mastername': master_name,
- 'target_testername': 'b',
'referenced_build_url': ('https://build.chromium.org/p/%s/builders'
'/%s/builds/%s') % (
master_name, builder_name, build_number)
}
try_job_pipeline = ScheduleTryJobPipeline()
properties = try_job_pipeline._GetBuildProperties(
- master_name, builder_name, build_number, 1, 2, TryJobType.TEST, None)
+ master_name, builder_name, build_number, 1, 2, failure_type.TEST, None)
self.assertEqual(properties, expected_properties)
- def testSuccessfullyScheduleNewTryJobForCompileWithSuspectedRevisions(self):
+ @mock.patch.object(schedule_try_job_pipeline, 'buildbucket_client')
+ def testTriggerTryJob(self, mock_other):
master_name = 'm'
builder_name = 'b'
- build_number = 223
- good_revision = 'rev1'
- bad_revision = 'rev2'
- build_id = '1'
- url = 'url'
-
- responses = [
- {
- 'build': {
- 'id': build_id,
- 'url': url,
- 'status': 'SCHEDULED',
- }
+ response = {
+ 'build': {
+ 'id': '1',
+ 'url': 'url',
+ 'status': 'SCHEDULED',
}
- ]
+ }
+ results = [(None, buildbucket_client.BuildbucketBuild(response['build']))]
+ mock_other.TriggerTryJobs.return_value = results
- self._Mock_TriggerTryJobs(responses)
+ try_job_pipeline = ScheduleTryJobPipeline()
+ build_id = try_job_pipeline._TriggerTryJob(
+ master_name, builder_name, {}, [])
- WfTryJob.Create(master_name, builder_name, build_number).put()
+ self.assertEqual(build_id, '1')
- try_job_pipeline = ScheduleTryJobPipeline()
- try_job_id = try_job_pipeline.run(
- master_name, builder_name, build_number, good_revision, bad_revision,
- TryJobType.COMPILE, None, None, ['r5'])
-
- try_job = WfTryJob.Get(master_name, builder_name, build_number)
- try_job_data = WfTryJobData.Get(build_id)
-
- expected_try_job_id = '1'
- self.assertEqual(expected_try_job_id, try_job_id)
- self.assertEqual(
- expected_try_job_id, try_job.compile_results[-1]['try_job_id'])
- self.assertTrue(expected_try_job_id in try_job.try_job_ids)
- self.assertIsNotNone(try_job_data)
- self.assertEqual(try_job_data.master_name, master_name)
- self.assertEqual(try_job_data.builder_name, builder_name)
- self.assertEqual(try_job_data.build_number, build_number)
- self.assertEqual(try_job_data.try_job_type, TryJobType.COMPILE)
- self.assertFalse(try_job_data.has_compile_targets)
- self.assertTrue(try_job_data.has_heuristic_results)
-
- def testSuccessfullyScheduleNewTryJobForTest(self):
+
+ def testCreateTryJobData(self):
+ build_id = 1
master_name = 'm'
builder_name = 'b'
- build_number = 223
- good_revision = 'rev1'
- bad_revision = 'rev2'
- targeted_tests = {'a': ['test1', 'test2']}
- build_id = '1'
-
- responses = [
- {
- 'build': {
- 'id': build_id,
- 'url': 'url',
- 'status': 'SCHEDULED',
- }
- }
- ]
- self._Mock_TriggerTryJobs(responses)
+ build_number = 1
+ try_job_type = failure_type.GetDescriptionForFailureType(failure_type.TEST)
- WfTryJob.Create(master_name, builder_name, build_number).put()
+ ScheduleTryJobPipeline()._CreateTryJobData(
+ build_id, master_name, builder_name, build_number, try_job_type,
+ False, False)
- try_job_pipeline = ScheduleTryJobPipeline()
- try_job_id = try_job_pipeline.run(
- master_name, builder_name, build_number, good_revision, bad_revision,
- TryJobType.TEST, None, targeted_tests, None)
-
- try_job = WfTryJob.Get(master_name, builder_name, build_number)
- try_job_data = WfTryJobData.Get(try_job_id)
- self.assertEqual(try_job_id, build_id)
- self.assertEqual(try_job.test_results[-1]['try_job_id'], build_id)
- self.assertIsNotNone(try_job_data)
- self.assertEqual(try_job_data.master_name, master_name)
- self.assertEqual(try_job_data.builder_name, builder_name)
- self.assertEqual(try_job_data.build_number, build_number)
- self.assertEqual(try_job_data.try_job_type, TryJobType.TEST)
- self.assertFalse(try_job_data.has_compile_targets)
- self.assertFalse(try_job_data.has_heuristic_results)
+ data = WfTryJobData.Get(build_id)
+
+ self.assertIsNotNone(data)
+ self.assertEqual(data.master_name, master_name)
+ self.assertEqual(data.builder_name, builder_name)
+ self.assertEqual(data.build_number, build_number)
+ self.assertEqual(data.try_job_type, try_job_type)
+ self.assertFalse(data.has_compile_targets)
+ self.assertFalse(data.has_heuristic_results)

Powered by Google App Engine
This is Rietveld 408576698