| 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 time | 5 import time |
| 6 | 6 |
| 7 from model import wf_analysis_status | 7 from model import analysis_status |
| 8 from model.wf_swarming_task import WfSwarmingTask | 8 from model.wf_swarming_task import WfSwarmingTask |
| 9 from waterfall import swarming_util | 9 from waterfall import swarming_util |
| 10 from waterfall import trigger_swarming_task_pipeline | 10 from waterfall import trigger_swarming_task_pipeline |
| 11 from waterfall import waterfall_config | 11 from waterfall import waterfall_config |
| 12 from waterfall.swarming_task_request import SwarmingTaskRequest | 12 from waterfall.swarming_task_request import SwarmingTaskRequest |
| 13 from waterfall.test import wf_testcase | 13 from waterfall.test import wf_testcase |
| 14 from waterfall.trigger_swarming_task_pipeline import TriggerSwarmingTaskPipeline | 14 from waterfall.trigger_swarming_task_pipeline import TriggerSwarmingTaskPipeline |
| 15 | 15 |
| 16 | 16 |
| 17 class TriggerSwarmingTaskPipelineTest(wf_testcase.WaterfallTestCase): | 17 class TriggerSwarmingTaskPipelineTest(wf_testcase.WaterfallTestCase): |
| 18 | 18 |
| 19 def testNoNewSwarmingTaskIsNeeded(self): | 19 def testNoNewSwarmingTaskIsNeeded(self): |
| 20 master_name = 'm' | 20 master_name = 'm' |
| 21 builder_name = 'b' | 21 builder_name = 'b' |
| 22 build_number = 1 | 22 build_number = 1 |
| 23 step_name = 's' | 23 step_name = 's' |
| 24 tests = ['a.b'] | 24 tests = ['a.b'] |
| 25 | 25 |
| 26 def MockedListSwarmingTasksDataByTags(*_): | 26 def MockedListSwarmingTasksDataByTags(*_): |
| 27 raise Exception('Fail.') # pragma: no cover. Should never be reached. | 27 raise Exception('Fail.') # pragma: no cover. Should never be reached. |
| 28 self.mock(swarming_util, 'ListSwarmingTasksDataByTags', | 28 self.mock(swarming_util, 'ListSwarmingTasksDataByTags', |
| 29 MockedListSwarmingTasksDataByTags) | 29 MockedListSwarmingTasksDataByTags) |
| 30 swarming_task = WfSwarmingTask.Create( | 30 swarming_task = WfSwarmingTask.Create( |
| 31 master_name, builder_name, build_number, step_name) | 31 master_name, builder_name, build_number, step_name) |
| 32 swarming_task.status = wf_analysis_status.ANALYZING | 32 swarming_task.status = analysis_status.RUNNING |
| 33 swarming_task.task_id = 'task_id' | 33 swarming_task.task_id = 'task_id' |
| 34 swarming_task.put() | 34 swarming_task.put() |
| 35 | 35 |
| 36 pipeline = TriggerSwarmingTaskPipeline() | 36 pipeline = TriggerSwarmingTaskPipeline() |
| 37 task_id = pipeline.run( | 37 task_id = pipeline.run( |
| 38 master_name, builder_name, build_number, step_name, tests) | 38 master_name, builder_name, build_number, step_name, tests) |
| 39 self.assertEqual('task_id', task_id) | 39 self.assertEqual('task_id', task_id) |
| 40 | 40 |
| 41 def testWaitingForTheTaskId(self): | 41 def testWaitingForTheTaskId(self): |
| 42 master_name = 'm' | 42 master_name = 'm' |
| 43 builder_name = 'b' | 43 builder_name = 'b' |
| 44 build_number = 1 | 44 build_number = 1 |
| 45 step_name = 's' | 45 step_name = 's' |
| 46 tests = ['a.b'] | 46 tests = ['a.b'] |
| 47 | 47 |
| 48 swarming_task = WfSwarmingTask.Create( | 48 swarming_task = WfSwarmingTask.Create( |
| 49 master_name, builder_name, build_number, step_name) | 49 master_name, builder_name, build_number, step_name) |
| 50 swarming_task.status = wf_analysis_status.PENDING | 50 swarming_task.status = analysis_status.PENDING |
| 51 swarming_task.put() | 51 swarming_task.put() |
| 52 | 52 |
| 53 def MockedSleep(*_): | 53 def MockedSleep(*_): |
| 54 swarming_task = WfSwarmingTask.Get( | 54 swarming_task = WfSwarmingTask.Get( |
| 55 master_name, builder_name, build_number, step_name) | 55 master_name, builder_name, build_number, step_name) |
| 56 self.assertEqual(wf_analysis_status.PENDING, swarming_task.status) | 56 self.assertEqual(analysis_status.PENDING, swarming_task.status) |
| 57 swarming_task.status = wf_analysis_status.ANALYZING | 57 swarming_task.status = analysis_status.RUNNING |
| 58 swarming_task.task_id = 'task_id' | 58 swarming_task.task_id = 'task_id' |
| 59 swarming_task.put() | 59 swarming_task.put() |
| 60 self.mock(time, 'sleep', MockedSleep) | 60 self.mock(time, 'sleep', MockedSleep) |
| 61 | 61 |
| 62 pipeline = TriggerSwarmingTaskPipeline() | 62 pipeline = TriggerSwarmingTaskPipeline() |
| 63 task_id = pipeline.run( | 63 task_id = pipeline.run( |
| 64 master_name, builder_name, build_number, step_name, tests) | 64 master_name, builder_name, build_number, step_name, tests) |
| 65 self.assertEqual('task_id', task_id) | 65 self.assertEqual('task_id', task_id) |
| 66 | 66 |
| 67 def testTriggerANewSwarmingTask(self): | 67 def testTriggerANewSwarmingTask(self): |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 self.assertEqual(expected_new_request_json, new_request_json) | 152 self.assertEqual(expected_new_request_json, new_request_json) |
| 153 | 153 |
| 154 swarming_task = WfSwarmingTask.Get( | 154 swarming_task = WfSwarmingTask.Get( |
| 155 master_name, builder_name, build_number, step_name) | 155 master_name, builder_name, build_number, step_name) |
| 156 self.assertIsNotNone(swarming_task) | 156 self.assertIsNotNone(swarming_task) |
| 157 self.assertEqual('new_task_id', swarming_task.task_id) | 157 self.assertEqual('new_task_id', swarming_task.task_id) |
| 158 self.assertEqual(tests, swarming_task.parameters['tests']) | 158 self.assertEqual(tests, swarming_task.parameters['tests']) |
| 159 self.assertEqual( | 159 self.assertEqual( |
| 160 waterfall_config.GetSwarmingSettings()['iterations_to_rerun'], | 160 waterfall_config.GetSwarmingSettings()['iterations_to_rerun'], |
| 161 swarming_task.parameters['iterations_to_rerun']) | 161 swarming_task.parameters['iterations_to_rerun']) |
| OLD | NEW |