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

Side by Side Diff: appengine/findit/waterfall/test/schedule_compile_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 unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import mock
6
7 from common.waterfall import buildbucket_client
8 from common.waterfall import failure_type
9 from model.wf_try_job import WfTryJob
10 from model.wf_try_job_data import WfTryJobData
11 from waterfall import schedule_try_job_pipeline
12 from waterfall.schedule_compile_try_job_pipeline import (
13 ScheduleCompileTryJobPipeline)
14 from waterfall.test import wf_testcase
15
16
17 class ScheduleCompileTryJobPipelineTest(wf_testcase.WaterfallTestCase):
18
19 def testGetBuildPropertiesWithCompileTargets(self):
20 master_name = 'm'
21 builder_name = 'b'
22 build_number = 1
23
24 expected_properties = {
25 'recipe': 'findit/chromium/compile',
26 'good_revision': 1,
27 'bad_revision': 2,
28 'target_mastername': master_name,
29 'target_buildername': 'b',
30 'referenced_build_url': ('https://build.chromium.org/p/%s/builders'
31 '/%s/builds/%s') % (
32 master_name, builder_name, build_number)
33 }
34 try_job_pipeline = ScheduleCompileTryJobPipeline()
35 properties = try_job_pipeline._GetBuildProperties(
36 master_name, builder_name, build_number, 1, 2,
37 failure_type.COMPILE, None)
38
39 self.assertEqual(properties, expected_properties)
40
41 @mock.patch.object(schedule_try_job_pipeline, 'buildbucket_client')
42 def testSuccessfullyScheduleNewTryJobForCompileWithSuspectedRevisions(
43 self, mock_other):
44 master_name = 'm'
45 builder_name = 'b'
46 build_number = 223
47 good_revision = 'rev1'
48 bad_revision = 'rev2'
49 build_id = '1'
50 url = 'url'
51
52 response = {
53 'build': {
54 'id': build_id,
55 'url': url,
56 'status': 'SCHEDULED',
57 }
58 }
59 results = [(None, buildbucket_client.BuildbucketBuild(response['build']))]
60 mock_other.TriggerTryJobs.return_value = results
61
62 WfTryJob.Create(master_name, builder_name, build_number).put()
63
64 try_job_pipeline = ScheduleCompileTryJobPipeline()
65 try_job_id = try_job_pipeline.run(
66 master_name, builder_name, build_number, good_revision, bad_revision,
67 failure_type.COMPILE, None, ['r5'])
68
69 try_job = WfTryJob.Get(master_name, builder_name, build_number)
70 try_job_data = WfTryJobData.Get(build_id)
71
72 expected_try_job_id = '1'
73 self.assertEqual(expected_try_job_id, try_job_id)
74 self.assertEqual(
75 expected_try_job_id, try_job.compile_results[-1]['try_job_id'])
76 self.assertTrue(expected_try_job_id in try_job.try_job_ids)
77 self.assertIsNotNone(try_job_data)
78 self.assertEqual(try_job_data.master_name, master_name)
79 self.assertEqual(try_job_data.builder_name, builder_name)
80 self.assertEqual(try_job_data.build_number, build_number)
81 self.assertEqual(
82 try_job_data.try_job_type,
83 failure_type.GetDescriptionForFailureType(failure_type.COMPILE))
84 self.assertFalse(try_job_data.has_compile_targets)
85 self.assertTrue(try_job_data.has_heuristic_results)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698