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

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

Issue 2477343003: [Findit] Refactoring monitor swarming task pipelines (Closed)
Patch Set: Addressing comments Created 4 years, 1 month 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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 201
202 analysis = MasterFlakeAnalysis.GetVersion( 202 analysis = MasterFlakeAnalysis.GetVersion(
203 self.master_name, self.builder_name, 203 self.master_name, self.builder_name,
204 self.build_number, self.step_name, test_name, self.version_number) 204 self.build_number, self.step_name, test_name, self.version_number)
205 self.assertTrue(analysis.data_points[-1].pass_rate < 0) 205 self.assertTrue(analysis.data_points[-1].pass_rate < 0)
206 206
207 def _MockedGetSwarmingTaskFailureLog(self, *_): 207 def _MockedGetSwarmingTaskFailureLog(self, *_):
208 return _SAMPLE_FAILURE_LOG 208 return _SAMPLE_FAILURE_LOG
209 209
210 def testProcessFlakeSwarmingTaskResultPipeline(self): 210 def testProcessFlakeSwarmingTaskResultPipeline(self):
211 211 # End to end test.
212 self.mock(swarming_util, 'GetSwarmingTaskFailureLog', 212 self.mock(swarming_util, 'GetSwarmingTaskFailureLog',
213 self._MockedGetSwarmingTaskFailureLog) 213 self._MockedGetSwarmingTaskFailureLog)
214 214
215 task = FlakeSwarmingTask.Create( 215 task = FlakeSwarmingTask.Create(
216 self.master_name, self.builder_name, 216 self.master_name, self.builder_name,
217 self.build_number, self.step_name, self.test_name) 217 self.build_number, self.step_name, self.test_name)
218 task.task_id = 'task_id1' 218 task.task_id = 'task_id1'
219 task.put() 219 task.put()
220 220
221 analysis = MasterFlakeAnalysis.Create( 221 analysis = MasterFlakeAnalysis.Create(
(...skipping 16 matching lines...) Expand all
238 238
239 self.assertEqual(analysis_status.COMPLETED, task.status) 239 self.assertEqual(analysis_status.COMPLETED, task.status)
240 self.assertEqual(_EXPECTED_TEST_STATUS, task.tests_statuses) 240 self.assertEqual(_EXPECTED_TEST_STATUS, task.tests_statuses)
241 241
242 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220), 242 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220),
243 task.created_time) 243 task.created_time)
244 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550), 244 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550),
245 task.started_time) 245 task.started_time)
246 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9), 246 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9),
247 task.completed_time) 247 task.completed_time)
248
249 def testProcessFlakeSwarmingTaskResultPipelineTaskNotRunning(self):
250 task = FlakeSwarmingTask.Create(
251 self.master_name, self.builder_name,
252 self.build_number, self.step_name, self.test_name)
253 task.task_id = 'task_id2'
254 task.put()
255
256 analysis = MasterFlakeAnalysis.Create(
257 self.master_name, self.builder_name,
258 self.build_number, self.step_name, self.test_name)
259 analysis.Save()
260
261 pipeline = ProcessFlakeSwarmingTaskResultPipeline()
262 step_name, task_info = pipeline.run(
263 self.master_name, self.builder_name, self.build_number, self.step_name,
264 'task_id2', self.build_number, self.test_name, analysis.version_number)
265 self.assertEqual(None, task_info)
266 self.assertEqual(self.step_name, step_name)
267
268 task = FlakeSwarmingTask.Get(
269 self.master_name, self.builder_name, self.build_number, self.step_name,
270 self.test_name)
271
272 self.assertEqual(analysis_status.ERROR, task.status)
273
274 def testProcessFlakeSwarmingTaskResultPipelineTaskTimeOut(self):
275 # Override swarming config settings to force a timeout.
276 override_swarming_settings = {
277 'task_timeout_hours': -1
278 }
279 self.UpdateUnitTestConfigSettings(
280 'swarming_settings', override_swarming_settings)
281
282 task = FlakeSwarmingTask.Create(
283 self.master_name, self.builder_name, self.build_number, self.step_name,
284 self.test_name)
285 task.task_id = 'task_id1'
286 task.put()
287
288 pipeline = ProcessFlakeSwarmingTaskResultPipeline()
289 step_name, task_info = pipeline.run(
290 self.master_name, self.builder_name, self.build_number, self.step_name,
291 'task_id1', self.build_number, self.test_name, self.version_number)
292 self.assertEqual('abc_tests', task_info)
293 self.assertEqual(self.step_name, step_name)
294
295 task = FlakeSwarmingTask.Get(
296 self.master_name, self.builder_name, self.build_number, self.step_name,
297 self.test_name)
298 self.assertEqual(analysis_status.ERROR, task.status)
299 self.assertEqual({}, task.tests_statuses)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698