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

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

Issue 2508603002: [Findit] Refactoring trigger swarming task pipelines (Closed)
Patch Set: 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 time 5 import time
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.wf_swarming_task import WfSwarmingTask 9 from model.wf_swarming_task import WfSwarmingTask
9 from waterfall import swarming_util 10 from waterfall import swarming_util
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_base_swarming_task_pipeline import (
15 TriggerBaseSwarmingTaskPipeline)
16 from waterfall.trigger_flake_swarming_task_pipeline import (
17 TriggerFlakeSwarmingTaskPipeline)
14 from waterfall.trigger_swarming_task_pipeline import TriggerSwarmingTaskPipeline 18 from waterfall.trigger_swarming_task_pipeline import TriggerSwarmingTaskPipeline
15 19
16 20
17 class TriggerSwarmingTaskPipelineTest(wf_testcase.WaterfallTestCase): 21 class TriggerBaseSwarmingTaskPipelineTest(wf_testcase.WaterfallTestCase):
18 22
19 def testNoNewSwarmingTaskIsNeeded(self): 23 def testNoNewSwarmingTaskIsNeeded(self):
20 master_name = 'm' 24 master_name = 'm'
21 builder_name = 'b' 25 builder_name = 'b'
22 build_number = 1 26 build_number = 1
23 step_name = 's' 27 step_name = 's'
24 tests = ['a.b'] 28 tests = ['a.b']
25 29
26 def MockedListSwarmingTasksDataByTags(*_):
27 raise Exception('Fail.') # pragma: no cover. Should never be reached.
28 self.mock(swarming_util, 'ListSwarmingTasksDataByTags',
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 = analysis_status.RUNNING 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 = FlakeSwarmingTask.Create(
49 master_name, builder_name, build_number, step_name) 49 master_name, builder_name, build_number, step_name, tests[0])
50 swarming_task.status = 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 = FlakeSwarmingTask.Get(
55 master_name, builder_name, build_number, step_name) 55 master_name, builder_name, build_number, step_name, tests[0])
56 self.assertEqual(analysis_status.PENDING, swarming_task.status) 56 self.assertEqual(analysis_status.PENDING, swarming_task.status)
57 swarming_task.status = analysis_status.RUNNING 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 = TriggerFlakeSwarmingTaskPipeline()
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):
68 def MockedDownloadSwarmingTaskData(*_): 68 def MockedDownloadSwarmingTaskData(*_):
69 return [{'task_id': '1'}, {'task_id': '2'}] 69 return [{'task_id': '1'}, {'task_id': '2'}]
70 self.mock(swarming_util, 'ListSwarmingTasksDataByTags', 70 self.mock(swarming_util, 'ListSwarmingTasksDataByTags',
71 MockedDownloadSwarmingTaskData) 71 MockedDownloadSwarmingTaskData)
72 72
(...skipping 26 matching lines...) Expand all
99 MockedGetSwarmingTaskRequest) 99 MockedGetSwarmingTaskRequest)
100 100
101 new_request_json = {} 101 new_request_json = {}
102 def MockedTriggerSwarmingTask(new_request, *_): 102 def MockedTriggerSwarmingTask(new_request, *_):
103 new_request_json.update(new_request.Serialize()) 103 new_request_json.update(new_request.Serialize())
104 return 'new_task_id' 104 return 'new_task_id'
105 self.mock(swarming_util, 'TriggerSwarmingTask', MockedTriggerSwarmingTask) 105 self.mock(swarming_util, 'TriggerSwarmingTask', MockedTriggerSwarmingTask)
106 106
107 def MockedGetSwarmingTaskName(*_): 107 def MockedGetSwarmingTaskName(*_):
108 return 'new_task_name' 108 return 'new_task_name'
109 self.mock(trigger_swarming_task_pipeline, '_GetSwarmingTaskName', 109 self.mock(TriggerBaseSwarmingTaskPipeline, '_GetSwarmingTaskName',
110 MockedGetSwarmingTaskName) 110 MockedGetSwarmingTaskName)
111 111
112 master_name = 'm' 112 master_name = 'm'
113 builder_name = 'b' 113 builder_name = 'b'
114 build_number = 234 114 build_number = 234
115 step_name = 'a_tests on platform' 115 step_name = 'a_tests on platform'
116 tests = ['a.b', 'a.c'] 116 tests = ['a.b', 'a.c']
117 117
118 expected_new_request_json = { 118 expected_new_request_json = {
119 'expiration_secs': 3600, 119 'expiration_secs': 3600,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
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'])
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698