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

Side by Side Diff: appengine/findit/waterfall/test/schedule_try_job_pipeline_test.py

Issue 1926473002: [Findit] Adding new fields to try job metadata and updating as soon as possible (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 4 years, 8 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
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from common.waterfall import buildbucket_client 5 from common.waterfall import buildbucket_client
6 from model.wf_try_job import WfTryJob 6 from model.wf_try_job import WfTryJob
7 from model.wf_try_job_data import WfTryJobData
7 from waterfall.schedule_try_job_pipeline import ScheduleTryJobPipeline 8 from waterfall.schedule_try_job_pipeline import ScheduleTryJobPipeline
8 from waterfall.test import wf_testcase 9 from waterfall.test import wf_testcase
9 from waterfall.try_job_type import TryJobType 10 from waterfall.try_job_type import TryJobType
10 11
11 12
12 class ScheduleTryjobPipelineTest(wf_testcase.WaterfallTestCase): 13 class ScheduleTryjobPipelineTest(wf_testcase.WaterfallTestCase):
13 14
14 def _Mock_TriggerTryJobs(self, responses): 15 def _Mock_TriggerTryJobs(self, responses):
15 def MockedTriggerTryJobs(*_): 16 def MockedTriggerTryJobs(*_):
16 results = [] 17 results = []
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 None, targeted_tests, None) 72 None, targeted_tests, None)
72 73
73 self.assertEqual(properties, expected_properties) 74 self.assertEqual(properties, expected_properties)
74 75
75 def testSuccessfullyScheduleNewTryJobForCompileWithSuspectedRevisions(self): 76 def testSuccessfullyScheduleNewTryJobForCompileWithSuspectedRevisions(self):
76 master_name = 'm' 77 master_name = 'm'
77 builder_name = 'b' 78 builder_name = 'b'
78 build_number = 223 79 build_number = 223
79 good_revision = 'rev1' 80 good_revision = 'rev1'
80 bad_revision = 'rev2' 81 bad_revision = 'rev2'
82 build_id = '1'
83 url = 'url'
81 84
82 responses = [ 85 responses = [
83 { 86 {
84 'build': { 87 'build': {
85 'id': '1', 88 'id': build_id,
86 'url': 'url', 89 'url': url,
87 'status': 'SCHEDULED', 90 'status': 'SCHEDULED',
88 } 91 }
89 } 92 }
90 ] 93 ]
91 94
92 self._Mock_TriggerTryJobs(responses) 95 self._Mock_TriggerTryJobs(responses)
93 96
94 WfTryJob.Create(master_name, builder_name, build_number).put() 97 WfTryJob.Create(master_name, builder_name, build_number).put()
95 98
96 try_job_pipeline = ScheduleTryJobPipeline() 99 try_job_pipeline = ScheduleTryJobPipeline()
97 try_job_id = try_job_pipeline.run( 100 try_job_id = try_job_pipeline.run(
98 master_name, builder_name, build_number, good_revision, bad_revision, 101 master_name, builder_name, build_number, good_revision, bad_revision,
99 TryJobType.COMPILE, None, None, ['r5']) 102 TryJobType.COMPILE, None, None, ['r5'])
100 103
101 try_job = WfTryJob.Get(master_name, builder_name, build_number) 104 try_job = WfTryJob.Get(master_name, builder_name, build_number)
105 try_job_data = WfTryJobData.Get(build_id)
106 try_job_data.put()
chanli 2016/04/26 23:52:13 This line can be deleted, right?
lijeffrey 2016/04/27 00:59:58 Oops good catch!
107
102 expected_try_job_id = '1' 108 expected_try_job_id = '1'
103 self.assertEqual(expected_try_job_id, try_job_id) 109 self.assertEqual(expected_try_job_id, try_job_id)
104 self.assertEqual( 110 self.assertEqual(
105 expected_try_job_id, try_job.compile_results[-1]['try_job_id']) 111 expected_try_job_id, try_job.compile_results[-1]['try_job_id'])
106 self.assertTrue(expected_try_job_id in try_job.try_job_ids) 112 self.assertTrue(expected_try_job_id in try_job.try_job_ids)
113 self.assertIsNotNone(try_job_data)
114 self.assertEqual(try_job_data.master_name, master_name)
115 self.assertEqual(try_job_data.builder_name, builder_name)
116 self.assertEqual(try_job_data.build_number, build_number)
117 self.assertEqual(try_job_data.try_job_type, TryJobType.COMPILE)
118 self.assertFalse(try_job_data.has_compile_targets)
119 self.assertTrue(try_job_data.has_heuristic_results)
107 120
108 def testSuccessfullyScheduleNewTryJobForTest(self): 121 def testSuccessfullyScheduleNewTryJobForTest(self):
109 master_name = 'm' 122 master_name = 'm'
110 builder_name = 'b' 123 builder_name = 'b'
111 build_number = 223 124 build_number = 223
112 good_revision = 'rev1' 125 good_revision = 'rev1'
113 bad_revision = 'rev2' 126 bad_revision = 'rev2'
114 targeted_tests = {'a': ['test1', 'test2']} 127 targeted_tests = {'a': ['test1', 'test2']}
128 build_id = '1'
115 129
116 responses = [ 130 responses = [
117 { 131 {
118 'build': { 132 'build': {
119 'id': '1', 133 'id': build_id,
120 'url': 'url', 134 'url': 'url',
121 'status': 'SCHEDULED', 135 'status': 'SCHEDULED',
122 } 136 }
123 } 137 }
124 ] 138 ]
125 self._Mock_TriggerTryJobs(responses) 139 self._Mock_TriggerTryJobs(responses)
126 140
127 WfTryJob.Create(master_name, builder_name, build_number).put() 141 WfTryJob.Create(master_name, builder_name, build_number).put()
128 142
129 try_job_pipeline = ScheduleTryJobPipeline() 143 try_job_pipeline = ScheduleTryJobPipeline()
130 try_job_id = try_job_pipeline.run( 144 try_job_id = try_job_pipeline.run(
131 master_name, builder_name, build_number, good_revision, bad_revision, 145 master_name, builder_name, build_number, good_revision, bad_revision,
132 TryJobType.TEST, None, targeted_tests, None) 146 TryJobType.TEST, None, targeted_tests, None)
133 147
134 try_job = WfTryJob.Get(master_name, builder_name, build_number) 148 try_job = WfTryJob.Get(master_name, builder_name, build_number)
135 self.assertEqual('1', try_job_id) 149 try_job_data = WfTryJobData.Get(try_job_id)
136 self.assertEqual('1', try_job.test_results[-1]['try_job_id']) 150 self.assertEqual(try_job_id, build_id)
151 self.assertEqual(try_job.test_results[-1]['try_job_id'], build_id)
152 self.assertIsNotNone(try_job_data)
153 self.assertEqual(try_job_data.master_name, master_name)
154 self.assertEqual(try_job_data.builder_name, builder_name)
155 self.assertEqual(try_job_data.build_number, build_number)
156 self.assertEqual(try_job_data.try_job_type, TryJobType.TEST)
157 self.assertFalse(try_job_data.has_compile_targets)
158 self.assertFalse(try_job_data.has_heuristic_results)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698