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

Side by Side Diff: appengine/findit/handlers/test/swarming_task_test.py

Issue 1797093002: [Findit] Fix bug when display try job result for non-swarming step. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: . Created 4 years, 9 months 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 webapp2 5 import webapp2
6 6
7 from testing_utils import testing 7 from testing_utils import testing
8 8
9 from handlers import swarming_task 9 from handlers import swarming_task
10 from model import wf_analysis_status
11 from model.wf_analysis import WfAnalysis
12 from model.wf_swarming_task import WfSwarmingTask
13 from waterfall import buildbot 10 from waterfall import buildbot
14 from waterfall import waterfall_config
15 11
16 class SwarmingTaskTest(testing.AppengineTestCase): 12 class SwarmingTaskTest(testing.AppengineTestCase):
17 app_module = webapp2.WSGIApplication([ 13 app_module = webapp2.WSGIApplication([
18 ('/swarming-task', swarming_task.SwarmingTask),], debug=True) 14 ('/swarming-task', swarming_task.SwarmingTask),], debug=True)
19 15
20 def setUp(self): 16 def setUp(self):
21 super(SwarmingTaskTest, self).setUp() 17 super(SwarmingTaskTest, self).setUp()
22 self.master_name = 'm' 18 self.master_name = 'm'
23 self.builder_name = 'b' 19 self.builder_name = 'b'
24 self.build_number = 121 20 self.build_number = 121
25 21
26 def MockedGetSwarmingSettings():
27 return {'server_host': 'chromium-swarm.appspot.com'}
28 self.mock(
29 waterfall_config, 'GetSwarmingSettings', MockedGetSwarmingSettings)
30
31 def testGenerateSwarmingTasksDataReturnEmptyIfNoFailureMap(self):
32 WfAnalysis.Create(
33 self.master_name, self.builder_name, self.build_number).put()
34
35 data = swarming_task._GenerateSwarmingTasksData(
36 self.master_name, self.builder_name, self.build_number)
37
38 self.assertEqual({}, data)
39
40 def testGenerateSwarmingTasksDataReturnEmptyIfNoSwarmingTests(self):
41 analysis = WfAnalysis.Create(
42 self.master_name, self.builder_name, self.build_number)
43 analysis.failure_result_map = {
44 'step1': '%s/%s/%s' % (self.master_name, self.builder_name, 120),
45 'step2': '%s/%s/%s' % (
46 self.master_name, self.builder_name, self.build_number)
47 }
48 analysis.put()
49
50 data = swarming_task._GenerateSwarmingTasksData(
51 self.master_name, self.builder_name, self.build_number)
52
53 self.assertEqual({}, data)
54
55 def testGenerateSwarmingTasksDataIfNoSwarmingTask(self):
56 analysis = WfAnalysis.Create(
57 self.master_name, self.builder_name, self.build_number)
58 analysis.failure_result_map = {
59 'step1': {
60 'test1': '%s/%s/%s' % (self.master_name, self.builder_name, 120),
61 'test2': '%s/%s/%s' % (
62 self.master_name, self.builder_name, self.build_number)
63 },
64 'step2': {
65 'test1': '%s/%s/%s' % (self.master_name, self.builder_name, 120)
66 }
67 }
68 analysis.put()
69
70 data = swarming_task._GenerateSwarmingTasksData(
71 self.master_name, self.builder_name, self.build_number)
72
73 expected_data = {
74 'step1': {
75 'swarming_tasks': [],
76 'tests': {}
77 },
78 'step2': {
79 'swarming_tasks': [],
80 'tests': {}
81 }
82 }
83 self.assertEqual(expected_data, data)
84
85 def testGenerateSwarmingTasksData(self):
86 analysis = WfAnalysis.Create(
87 self.master_name, self.builder_name, self.build_number)
88 analysis.failure_result_map = {
89 'step1': {
90 'test1': '%s/%s/%s' % (self.master_name, self.builder_name, 120),
91 'test2': '%s/%s/%s' % (
92 self.master_name, self.builder_name, self.build_number)
93 },
94 'step2': {
95 'test1': '%s/%s/%s' % (
96 self.master_name, self.builder_name, self.build_number)
97 }
98 }
99 analysis.put()
100
101 task0 = WfSwarmingTask.Create(
102 self.master_name, self.builder_name, 120, 'step1')
103 task0.task_id = 'task0'
104 task0.status = wf_analysis_status.ANALYZED
105 task0.put()
106
107 task1 = WfSwarmingTask.Create(
108 self.master_name, self.builder_name, self.build_number, 'step1')
109 task1.task_id = 'task1'
110 task1.status = wf_analysis_status.ANALYZED
111 task1.put()
112
113 task2 = WfSwarmingTask.Create(
114 self.master_name, self.builder_name, self.build_number, 'step2')
115 task2.put()
116
117 data = swarming_task._GenerateSwarmingTasksData(
118 self.master_name, self.builder_name, self.build_number)
119
120 expected_data = {
121 'step1': {
122 'swarming_tasks': [
123 {
124 'status': 'Completed',
125 'task_id': 'task1',
126 'task_url': (
127 'https://chromium-swarm.appspot.com/user/task/task1')
128 },
129 {
130 'status': 'Completed',
131 'task_id': 'task0',
132 'task_url': (
133 'https://chromium-swarm.appspot.com/user/task/task0')
134 }
135 ],
136 'tests': {
137 'test1': {
138 'status': 'Completed',
139 'task_id': 'task0',
140 'task_url': (
141 'https://chromium-swarm.appspot.com/user/task/task0')
142 },
143 'test2': {
144 'status': 'Completed',
145 'task_id': 'task1',
146 'task_url': (
147 'https://chromium-swarm.appspot.com/user/task/task1')
148 }
149 }
150 },
151 'step2': {
152 'swarming_tasks': [
153 {
154 'status': 'Pending'
155 }
156 ],
157 'tests': {
158 'test1': {
159 'status': 'Pending'
160 }
161 }
162 }
163 }
164 self.assertEqual(expected_data, data)
165
166 def testSwarmingTaskHandler(self): 22 def testSwarmingTaskHandler(self):
167 build_url = buildbot.CreateBuildUrl( 23 build_url = buildbot.CreateBuildUrl(
168 self.master_name, self.builder_name, self.build_number) 24 self.master_name, self.builder_name, self.build_number)
169 response = self.test_app.get('/swarming-task', params={'url': build_url}) 25 response = self.test_app.get('/swarming-task', params={'url': build_url})
170 expected_results = {} 26 expected_results = {}
171 27
172 self.assertEqual(200, response.status_int) 28 self.assertEqual(200, response.status_int)
173 self.assertEqual(expected_results, response.json_body) 29 self.assertEqual(expected_results, response.json_body)
OLDNEW
« no previous file with comments | « appengine/findit/handlers/test/handlers_util_test.py ('k') | appengine/findit/handlers/test/try_job_result_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698