| 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 |
| 11 from model.wf_swarming_task import WfSwarmingTask | 11 from model.wf_swarming_task import WfSwarmingTask |
| 12 from waterfall import build_util |
| 12 from waterfall import swarming_util | 13 from waterfall import swarming_util |
| 13 from waterfall import process_flake_swarming_task_result_pipeline | 14 from waterfall.build_info import BuildInfo |
| 14 from waterfall.process_base_swarming_task_result_pipeline import ( | 15 from waterfall.process_base_swarming_task_result_pipeline import ( |
| 15 ProcessBaseSwarmingTaskResultPipeline) | 16 ProcessBaseSwarmingTaskResultPipeline) |
| 16 from waterfall.process_flake_swarming_task_result_pipeline import ( | 17 from waterfall.process_flake_swarming_task_result_pipeline import ( |
| 17 ProcessFlakeSwarmingTaskResultPipeline) | 18 ProcessFlakeSwarmingTaskResultPipeline) |
| 18 from waterfall.process_swarming_task_result_pipeline import ( | 19 from waterfall.process_swarming_task_result_pipeline import ( |
| 19 ProcessSwarmingTaskResultPipeline) | 20 ProcessSwarmingTaskResultPipeline) |
| 20 from waterfall.test import wf_testcase | 21 from waterfall.test import wf_testcase |
| 21 | 22 |
| 22 | 23 |
| 23 _ISOLATED_SERVER = 'https://isolateserver.appspot.com' | 24 _ISOLATED_SERVER = 'https://isolateserver.appspot.com' |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 {}, | 185 {}, |
| 185 ProcessBaseSwarmingTaskResultPipeline._CheckTestsRunStatuses( | 186 ProcessBaseSwarmingTaskResultPipeline._CheckTestsRunStatuses( |
| 186 self.pipeline, None, ())) | 187 self.pipeline, None, ())) |
| 187 | 188 |
| 188 def testCheckTestsRunStatuses(self): | 189 def testCheckTestsRunStatuses(self): |
| 189 tests_statuses = ( | 190 tests_statuses = ( |
| 190 ProcessSwarmingTaskResultPipeline()._CheckTestsRunStatuses( | 191 ProcessSwarmingTaskResultPipeline()._CheckTestsRunStatuses( |
| 191 _SAMPLE_FAILURE_LOG)) | 192 _SAMPLE_FAILURE_LOG)) |
| 192 self.assertEqual(_EXPECTED_TESTS_STATUS, tests_statuses) | 193 self.assertEqual(_EXPECTED_TESTS_STATUS, tests_statuses) |
| 193 | 194 |
| 194 @mock.patch.object(process_flake_swarming_task_result_pipeline, | 195 @mock.patch.object(build_util, 'GetBuildInfo') |
| 195 '_GetCommitPositionAndGitHash', | 196 def testMonitorSwarmingTaskTimeOut(self, mocked_fn): |
| 196 return_value=(12345, 'git_hash')) | 197 build_info = BuildInfo( |
| 197 def testMonitorSwarmingTaskTimeOut(self, _): | 198 self.master_name, self.builder_name, self.build_number) |
| 199 build_info.commit_position = 12345 |
| 200 build_info.chromium_revision = 'a1b2c3d4' |
| 201 mocked_fn.return_value = build_info |
| 202 |
| 198 # Override swarming config settings to force a timeout. | 203 # Override swarming config settings to force a timeout. |
| 199 override_swarming_settings = { | 204 override_swarming_settings = { |
| 200 'task_timeout_hours': -1 | 205 'task_timeout_hours': -1 |
| 201 } | 206 } |
| 202 self.UpdateUnitTestConfigSettings( | 207 self.UpdateUnitTestConfigSettings( |
| 203 'swarming_settings', override_swarming_settings) | 208 'swarming_settings', override_swarming_settings) |
| 204 | 209 |
| 205 task = FlakeSwarmingTask.Create( | 210 task = FlakeSwarmingTask.Create( |
| 206 self.master_name, self.builder_name, self.build_number, self.step_name, | 211 self.master_name, self.builder_name, self.build_number, self.step_name, |
| 207 self.test_name) | 212 self.test_name) |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 self.assertEqual(analysis_status.COMPLETED, task.status) | 387 self.assertEqual(analysis_status.COMPLETED, task.status) |
| 383 self.assertEqual(_EXPECTED_TESTS_STATUS, task.tests_statuses) | 388 self.assertEqual(_EXPECTED_TESTS_STATUS, task.tests_statuses) |
| 384 self.assertEqual( | 389 self.assertEqual( |
| 385 _EXPECTED_CLASSIFIED_TESTS, task.classified_tests) | 390 _EXPECTED_CLASSIFIED_TESTS, task.classified_tests) |
| 386 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220), | 391 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220), |
| 387 task.created_time) | 392 task.created_time) |
| 388 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550), | 393 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550), |
| 389 task.started_time) | 394 task.started_time) |
| 390 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9), | 395 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9), |
| 391 task.completed_time) | 396 task.completed_time) |
| OLD | NEW |