| OLD | NEW |
| 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 import mock | 6 import mock |
| 7 | 7 |
| 8 from model import analysis_status | 8 from model import analysis_status |
| 9 from model.flake.flake_swarming_task import FlakeSwarmingTask | 9 from model.flake.flake_swarming_task import FlakeSwarmingTask |
| 10 from model.flake.master_flake_analysis import MasterFlakeAnalysis | 10 from model.flake.master_flake_analysis import MasterFlakeAnalysis |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 'completed_ts': '2016-02-10T18:33:09' | 109 'completed_ts': '2016-02-10T18:33:09' |
| 110 }, | 110 }, |
| 111 'task_id2': { | 111 'task_id2': { |
| 112 'state': 'TIMED_OUT', | 112 'state': 'TIMED_OUT', |
| 113 'outputs_ref': None | 113 'outputs_ref': None |
| 114 }, | 114 }, |
| 115 'task_id3': { | 115 'task_id3': { |
| 116 'state': 'COMPLETED', | 116 'state': 'COMPLETED', |
| 117 'exit_code': '2', # Swarming task failed. | 117 'exit_code': '2', # Swarming task failed. |
| 118 }, | 118 }, |
| 119 'task_id4': { |
| 120 'state': 'COMPLETED', |
| 121 'exit_code': '1', |
| 122 }, |
| 119 } | 123 } |
| 120 | 124 |
| 121 | 125 |
| 122 _EXPECTED_TESTS_STATUS = { | 126 _EXPECTED_TESTS_STATUS = { |
| 123 'TestSuite1.test1': { | 127 'TestSuite1.test1': { |
| 124 'total_run': 2, | 128 'total_run': 2, |
| 125 'SUCCESS': 2 | 129 'SUCCESS': 2 |
| 126 }, | 130 }, |
| 127 'TestSuite1.test2': { | 131 'TestSuite1.test2': { |
| 128 'total_run': 4, | 132 'total_run': 4, |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 | 293 |
| 290 self.assertEqual(analysis_status.ERROR, task.status) | 294 self.assertEqual(analysis_status.ERROR, task.status) |
| 291 self.assertEqual( | 295 self.assertEqual( |
| 292 task.error, | 296 task.error, |
| 293 { | 297 { |
| 294 'code': swarming_util.TASK_FAILED, | 298 'code': swarming_util.TASK_FAILED, |
| 295 'message': swarming_util.EXIT_CODE_DESCRIPTIONS[ | 299 'message': swarming_util.EXIT_CODE_DESCRIPTIONS[ |
| 296 swarming_util.TASK_FAILED] | 300 swarming_util.TASK_FAILED] |
| 297 }) | 301 }) |
| 298 | 302 |
| 303 def testMonitorSwarmingTaskWhereNoTaskOutputs(self): |
| 304 task = WfSwarmingTask.Create( |
| 305 self.master_name, self.builder_name, |
| 306 self.build_number, self.step_name) |
| 307 task.task_id = 'task_id4' |
| 308 task.put() |
| 309 |
| 310 pipeline = ProcessSwarmingTaskResultPipeline() |
| 311 pipeline.run( |
| 312 self.master_name, self.builder_name, self.build_number, self.step_name) |
| 313 |
| 314 self.assertEqual(analysis_status.ERROR, task.status) |
| 315 self.assertEqual( |
| 316 task.error, |
| 317 { |
| 318 'code': swarming_util.NO_TASK_OUTPUTS, |
| 319 'message': 'outputs_ref is None' |
| 320 }) |
| 321 |
| 299 def testProcessSwarmingTaskResultPipeline(self): | 322 def testProcessSwarmingTaskResultPipeline(self): |
| 300 # End to end test. | 323 # End to end test. |
| 301 self.mock(swarming_util, 'GetSwarmingTaskFailureLog', | 324 self.mock(swarming_util, 'GetSwarmingTaskFailureLog', |
| 302 self._MockedGetSwarmingTaskFailureLog) | 325 self._MockedGetSwarmingTaskFailureLog) |
| 303 | 326 |
| 304 task = WfSwarmingTask.Create( | 327 task = WfSwarmingTask.Create( |
| 305 self.master_name, self.builder_name, | 328 self.master_name, self.builder_name, |
| 306 self.build_number, self.step_name) | 329 self.build_number, self.step_name) |
| 307 task.task_id = 'task_id1' | 330 task.task_id = 'task_id1' |
| 308 task.put() | 331 task.put() |
| (...skipping 14 matching lines...) Expand all Loading... |
| 323 self.assertEqual(analysis_status.COMPLETED, task.status) | 346 self.assertEqual(analysis_status.COMPLETED, task.status) |
| 324 self.assertEqual(_EXPECTED_TESTS_STATUS, task.tests_statuses) | 347 self.assertEqual(_EXPECTED_TESTS_STATUS, task.tests_statuses) |
| 325 self.assertEqual( | 348 self.assertEqual( |
| 326 _EXPECTED_CLASSIFIED_TESTS, task.classified_tests) | 349 _EXPECTED_CLASSIFIED_TESTS, task.classified_tests) |
| 327 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220), | 350 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220), |
| 328 task.created_time) | 351 task.created_time) |
| 329 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550), | 352 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550), |
| 330 task.started_time) | 353 task.started_time) |
| 331 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9), | 354 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9), |
| 332 task.completed_time) | 355 task.completed_time) |
| OLD | NEW |