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

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

Issue 2369333002: [Findit] Capture versionized metadata for master_flake_analysis (Closed)
Patch Set: Created 4 years, 2 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 2016 The Chromium Authors. All rights reserved. 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 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 import datetime 5 import datetime
6 6
7 from model import analysis_status 7 from model import analysis_status
8 from model.flake.flake_swarming_task import FlakeSwarmingTask 8 from model.flake.flake_swarming_task import FlakeSwarmingTask
9 from model.flake.master_flake_analysis import MasterFlakeAnalysis 9 from model.flake.master_flake_analysis import MasterFlakeAnalysis
10 from waterfall import swarming_util 10 from waterfall import swarming_util
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 'other_info': 'N/A' 76 'other_info': 'N/A'
77 }, 77 },
78 { 78 {
79 'status': 'FAILURE', 79 'status': 'FAILURE',
80 'other_info': 'N/A' 80 'other_info': 'N/A'
81 } 81 }
82 ] 82 ]
83 } 83 }
84 ] 84 ]
85 } 85 }
86 _EXPECTED_TESTS_STATUESE = { 86 _EXPECTED_TEST_STATUS = {
87 'TestSuite1.test1': { 87 'TestSuite1.test1': {
88 'total_run': 2, 88 'total_run': 2,
89 'SUCCESS': 2 89 'SUCCESS': 2
90 }, 90 },
91 'TestSuite1.test2': { 91 'TestSuite1.test2': {
92 'total_run': 4, 92 'total_run': 4,
93 'SUCCESS': 2, 93 'SUCCESS': 2,
94 'FAILURE': 2 94 'FAILURE': 2
95 }, 95 },
96 'TestSuite1.test3': { 96 'TestSuite1.test3': {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 self.mock(swarming_util, 'GetSwarmingTaskResultById', 140 self.mock(swarming_util, 'GetSwarmingTaskResultById',
141 self._MockedGetSwarmingTaskResultById) 141 self._MockedGetSwarmingTaskResultById)
142 142
143 def testCheckTestsRunStatusesNoOutPutJson(self): 143 def testCheckTestsRunStatusesNoOutPutJson(self):
144 call_params = ProcessFlakeSwarmingTaskResultPipeline._GetArgs( 144 call_params = ProcessFlakeSwarmingTaskResultPipeline._GetArgs(
145 self.pipeline, self.master_name, self.builder_name, 145 self.pipeline, self.master_name, self.builder_name,
146 self.build_number, self.step_name, self.build_number, 146 self.build_number, self.step_name, self.build_number,
147 self.test_name) 147 self.test_name)
148 tests_statuses = ( 148 tests_statuses = (
149 ProcessFlakeSwarmingTaskResultPipeline._CheckTestsRunStatuses( 149 ProcessFlakeSwarmingTaskResultPipeline._CheckTestsRunStatuses(
150 self.pipeline, None, *call_params 150 self.pipeline, None, *call_params))
151 ))
152 self.assertEqual({}, tests_statuses) 151 self.assertEqual({}, tests_statuses)
153 152
154 def testCheckTestsRunStatuses(self): 153 def testCheckTestsRunStatuses(self):
155 analysis = MasterFlakeAnalysis.Create( 154 analysis = MasterFlakeAnalysis.Create(
156 self.master_name, self.builder_name, 155 self.master_name, self.builder_name,
157 self.build_number, self.step_name, self.test_name) 156 self.build_number, self.step_name, self.test_name)
158 analysis.put() 157 analysis.Save()
159 158
160 task = FlakeSwarmingTask.Create( 159 task = FlakeSwarmingTask.Create(
161 self.master_name, self.builder_name, 160 self.master_name, self.builder_name,
162 self.build_number, self.step_name, self.test_name) 161 self.build_number, self.step_name, self.test_name)
163 task.put() 162 task.put()
164 163
165 call_params = ProcessFlakeSwarmingTaskResultPipeline._GetArgs( 164 call_params = ProcessFlakeSwarmingTaskResultPipeline._GetArgs(
166 self.pipeline, self.master_name, self.builder_name, 165 self.pipeline, self.master_name, self.builder_name,
167 self.build_number, self.step_name, self.build_number, 166 self.build_number, self.step_name, self.build_number,
168 self.test_name) 167 self.test_name)
169 168
170 tests_statuses = ( 169 tests_statuses = (
171 ProcessFlakeSwarmingTaskResultPipeline._CheckTestsRunStatuses( 170 ProcessFlakeSwarmingTaskResultPipeline._CheckTestsRunStatuses(
172 self.pipeline, 171 self.pipeline,
173 _SAMPLE_FAILURE_LOG, *call_params)) 172 _SAMPLE_FAILURE_LOG, *call_params))
174 self.assertEqual(_EXPECTED_TESTS_STATUESE, tests_statuses) 173 self.assertEqual(_EXPECTED_TEST_STATUS, tests_statuses)
175 174
176 def testCheckTestsRunStatusesWhenTestNotExist(self): 175 def testCheckTestsRunStatusesWhenTestDoesNotExist(self):
177 test_name = 'TestSuite1.new_test' 176 test_name = 'TestSuite1.new_test'
178 analysis = MasterFlakeAnalysis.Create( 177 analysis = MasterFlakeAnalysis.Create(
179 self.master_name, self.builder_name, 178 self.master_name, self.builder_name,
180 self.build_number, self.step_name, test_name) 179 self.build_number, self.step_name, test_name)
181 analysis.put() 180 analysis.Save()
182 181
183 task = FlakeSwarmingTask.Create( 182 task = FlakeSwarmingTask.Create(
184 self.master_name, self.builder_name, 183 self.master_name, self.builder_name,
185 self.build_number, self.step_name, test_name) 184 self.build_number, self.step_name, test_name)
186 task.put() 185 task.put()
187 186
188 pipeline = ProcessFlakeSwarmingTaskResultPipeline() 187 pipeline = ProcessFlakeSwarmingTaskResultPipeline()
189 tests_statuses = pipeline._CheckTestsRunStatuses( 188 tests_statuses = pipeline._CheckTestsRunStatuses(
190 _SAMPLE_FAILURE_LOG, self.master_name, self.builder_name, 189 _SAMPLE_FAILURE_LOG, self.master_name, self.builder_name,
191 self.build_number, self.step_name, self.build_number, test_name) 190 self.build_number, self.step_name, self.build_number, test_name)
192 191
193 self.assertEqual(_EXPECTED_TESTS_STATUESE, tests_statuses) 192 self.assertEqual(_EXPECTED_TEST_STATUS, tests_statuses)
194 193
195 task = FlakeSwarmingTask.Get( 194 task = FlakeSwarmingTask.Get(
196 self.master_name, self.builder_name, 195 self.master_name, self.builder_name,
197 self.build_number, self.step_name, test_name) 196 self.build_number, self.step_name, test_name)
198 self.assertEqual(0, task.tries) 197 self.assertEqual(0, task.tries)
199 self.assertEqual(0, task.successes) 198 self.assertEqual(0, task.successes)
200 199
201 analysis = MasterFlakeAnalysis.Get( 200 analysis = MasterFlakeAnalysis.GetVersion(
202 self.master_name, self.builder_name, 201 self.master_name, self.builder_name,
203 self.build_number, self.step_name, test_name) 202 self.build_number, self.step_name, test_name)
204 self.assertTrue(analysis.success_rates[-1] < 0) 203 self.assertTrue(analysis.pass_rates[-1] < 0)
205 204
206 def _MockedGetSwarmingTaskFailureLog(self, *_): 205 def _MockedGetSwarmingTaskFailureLog(self, *_):
207 return _SAMPLE_FAILURE_LOG 206 return _SAMPLE_FAILURE_LOG
208 207
209 def testProcessFlakeSwarmingTaskResultPipeline(self): 208 def testProcessFlakeSwarmingTaskResultPipeline(self):
210 209
211 self.mock(swarming_util, 'GetSwarmingTaskFailureLog', 210 self.mock(swarming_util, 'GetSwarmingTaskFailureLog',
212 self._MockedGetSwarmingTaskFailureLog) 211 self._MockedGetSwarmingTaskFailureLog)
213 212
214 task = FlakeSwarmingTask.Create( 213 task = FlakeSwarmingTask.Create(
215 self.master_name, self.builder_name, 214 self.master_name, self.builder_name,
216 self.build_number, self.step_name, self.test_name) 215 self.build_number, self.step_name, self.test_name)
217 task.task_id = 'task_id1' 216 task.task_id = 'task_id1'
218 task.put() 217 task.put()
219 218
220 analysis = MasterFlakeAnalysis.Create( 219 analysis = MasterFlakeAnalysis.Create(
221 self.master_name, self.builder_name, 220 self.master_name, self.builder_name,
222 self.build_number, self.step_name, self.test_name) 221 self.build_number, self.step_name, self.test_name)
223 analysis.put() 222 analysis.Save()
224 223
225 pipeline = ProcessFlakeSwarmingTaskResultPipeline() 224 pipeline = ProcessFlakeSwarmingTaskResultPipeline()
226 step_name, task_info = pipeline.run( 225 step_name, task_info = pipeline.run(
227 self.master_name, self.builder_name, 226 self.master_name, self.builder_name,
228 self.build_number, self.step_name, 227 self.build_number, self.step_name,
229 'task_id1', self.build_number, self.test_name) 228 'task_id1', self.build_number, self.test_name)
230 self.assertEqual('abc_tests', task_info) 229 self.assertEqual('abc_tests', task_info)
231 self.assertEqual(self.step_name, step_name) 230 self.assertEqual(self.step_name, step_name)
232 231
233 task = FlakeSwarmingTask.Get( 232 task = FlakeSwarmingTask.Get(
234 self.master_name, self.builder_name, self.build_number, 233 self.master_name, self.builder_name, self.build_number,
235 self.step_name, self.test_name) 234 self.step_name, self.test_name)
236 235
237 self.assertEqual(analysis_status.COMPLETED, task.status) 236 self.assertEqual(analysis_status.COMPLETED, task.status)
238 self.assertEqual(_EXPECTED_TESTS_STATUESE, task.tests_statuses) 237 self.assertEqual(_EXPECTED_TEST_STATUS, task.tests_statuses)
239 238
240 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220), 239 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220),
241 task.created_time) 240 task.created_time)
242 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550), 241 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550),
243 task.started_time) 242 task.started_time)
244 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9), 243 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9),
245 task.completed_time) 244 task.completed_time)
246 245
247 def testProcessFlakeSwarmingTaskResultPipelineTaskNotRunning(self): 246 def testProcessFlakeSwarmingTaskResultPipelineTaskNotRunning(self):
248 task = FlakeSwarmingTask.Create( 247 task = FlakeSwarmingTask.Create(
249 self.master_name, self.builder_name, 248 self.master_name, self.builder_name,
250 self.build_number, self.step_name, self.test_name) 249 self.build_number, self.step_name, self.test_name)
251 task.task_id = 'task_id2' 250 task.task_id = 'task_id2'
252 task.put() 251 task.put()
253 252
254 analysis = MasterFlakeAnalysis.Create( 253 analysis = MasterFlakeAnalysis.Create(
255 self.master_name, self.builder_name, 254 self.master_name, self.builder_name,
256 self.build_number, self.step_name, self.test_name) 255 self.build_number, self.step_name, self.test_name)
257 analysis.put() 256 analysis.Save()
258 257
259 pipeline = ProcessFlakeSwarmingTaskResultPipeline() 258 pipeline = ProcessFlakeSwarmingTaskResultPipeline()
260 step_name, task_info = pipeline.run( 259 step_name, task_info = pipeline.run(
261 self.master_name, self.builder_name, 260 self.master_name, self.builder_name,
262 self.build_number, self.step_name, 261 self.build_number, self.step_name,
263 'task_id2', self.build_number, self.test_name) 262 'task_id2', self.build_number, self.test_name)
264 self.assertEqual(None, task_info) 263 self.assertEqual(None, task_info)
265 self.assertEqual(self.step_name, step_name) 264 self.assertEqual(self.step_name, step_name)
266 265
267 task = FlakeSwarmingTask.Get( 266 task = FlakeSwarmingTask.Get(
(...skipping 22 matching lines...) Expand all
290 self.build_number, self.step_name, 289 self.build_number, self.step_name,
291 'task_id1', self.build_number, self.test_name) 290 'task_id1', self.build_number, self.test_name)
292 self.assertEqual('abc_tests', task_info) 291 self.assertEqual('abc_tests', task_info)
293 self.assertEqual(self.step_name, step_name) 292 self.assertEqual(self.step_name, step_name)
294 293
295 task = FlakeSwarmingTask.Get( 294 task = FlakeSwarmingTask.Get(
296 self.master_name, self.builder_name, self.build_number, 295 self.master_name, self.builder_name, self.build_number,
297 self.step_name, self.test_name) 296 self.step_name, self.test_name)
298 self.assertEqual(analysis_status.ERROR, task.status) 297 self.assertEqual(analysis_status.ERROR, task.status)
299 self.assertEqual({}, task.tests_statuses) 298 self.assertEqual({}, task.tests_statuses)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698