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

Side by Side Diff: appengine/findit/handlers/flake/test/check_flake_test.py

Issue 2438673004: [Findit] Post analysis results of flakes to bug filed by chromium-try-flakes. (Closed)
Patch Set: Add a config flag to enable/disable updating monorail bug. 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 datetime 5 import datetime
6 import mock 6 import mock
7 import re 7 import re
8 8
9 import webapp2 9 import webapp2
10 import webtest 10 import webtest
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 analysis.data_points.append(data_point) 86 analysis.data_points.append(data_point)
87 analysis.status = analysis_status.COMPLETED 87 analysis.status = analysis_status.COMPLETED
88 analysis.suspected_flake_build_number = 100 88 analysis.suspected_flake_build_number = 100
89 analysis.request_time = datetime.datetime(2016, 10, 01, 12, 10, 00) 89 analysis.request_time = datetime.datetime(2016, 10, 01, 12, 10, 00)
90 analysis.start_time = datetime.datetime(2016, 10, 01, 12, 10, 05) 90 analysis.start_time = datetime.datetime(2016, 10, 01, 12, 10, 05)
91 analysis.end_time = datetime.datetime(2016, 10, 01, 13, 10, 00) 91 analysis.end_time = datetime.datetime(2016, 10, 01, 13, 10, 00)
92 analysis.algorithm_parameters = {'iterations_to_rerun': 100} 92 analysis.algorithm_parameters = {'iterations_to_rerun': 100}
93 analysis.Save() 93 analysis.Save()
94 94
95 response = self.test_app.get('/waterfall/check-flake', params={ 95 response = self.test_app.get('/waterfall/check-flake', params={
96 'master_name': master_name, 96 'key': analysis.key.urlsafe(),
97 'builder_name': builder_name,
98 'build_number': build_number,
99 'step_name': step_name,
100 'test_name': test_name,
101 'format': 'json'}) 97 'format': 'json'})
102 98
103 expected_check_flake_result = { 99 expected_check_flake_result = {
104 'pass_rates': [[int(build_number), success_rate]], 100 'pass_rates': [[int(build_number), success_rate]],
105 'analysis_status': STATUS_TO_DESCRIPTION.get(analysis.status), 101 'analysis_status': STATUS_TO_DESCRIPTION.get(analysis.status),
106 'master_name': master_name, 102 'master_name': master_name,
107 'builder_name': builder_name, 103 'builder_name': builder_name,
108 'build_number': int(build_number), 104 'build_number': int(build_number),
109 'step_name': step_name, 105 'step_name': step_name,
110 'test_name': test_name, 106 'test_name': test_name,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 master_name = 'm' 147 master_name = 'm'
152 builder_name = 'b' 148 builder_name = 'b'
153 build_number = 123 149 build_number = 123
154 step_name = 's' 150 step_name = 's'
155 test_name = 't' 151 test_name = 't'
156 success_rate = 0.9 152 success_rate = 0.9
157 153
158 previous_analysis = MasterFlakeAnalysis.Create( 154 previous_analysis = MasterFlakeAnalysis.Create(
159 master_name, builder_name, build_number - 1, step_name, test_name) 155 master_name, builder_name, build_number - 1, step_name, test_name)
160 data_point = DataPoint() 156 data_point = DataPoint()
161 data_point.build_number = int(build_number) 157 data_point.build_number = build_number - 1
162 data_point.pass_rate = success_rate 158 data_point.pass_rate = success_rate
163 previous_analysis.data_points.append(data_point) 159 previous_analysis.data_points.append(data_point)
164 previous_analysis.status = analysis_status.COMPLETED 160 previous_analysis.status = analysis_status.COMPLETED
165 previous_analysis.suspected_flake_build_number = 100 161 previous_analysis.suspected_flake_build_number = 100
166 previous_analysis.request_time = datetime.datetime(2016, 10, 01, 12, 10, 00) 162 previous_analysis.request_time = datetime.datetime(2016, 10, 01, 12, 10, 00)
167 previous_analysis.start_time = datetime.datetime(2016, 10, 01, 12, 10, 05) 163 previous_analysis.start_time = datetime.datetime(2016, 10, 01, 12, 10, 05)
168 previous_analysis.end_time = datetime.datetime(2016, 10, 01, 13, 10, 00) 164 previous_analysis.end_time = datetime.datetime(2016, 10, 01, 13, 10, 00)
169 previous_analysis.algorithm_parameters = {'iterations_to_rerun': 100} 165 previous_analysis.algorithm_parameters = {'iterations_to_rerun': 100}
170 previous_analysis.Save() 166 previous_analysis.Save()
171 167
172 previous_request = FlakeAnalysisRequest.Create(test_name, False, None) 168 previous_request = FlakeAnalysisRequest.Create(test_name, False, None)
173 previous_request.AddBuildStep( 169 previous_request.AddBuildStep(
174 master_name, builder_name, build_number, step_name, None) 170 master_name, builder_name, build_number, step_name, None)
175 previous_request.analyses.append(previous_analysis.key) 171 previous_request.analyses.append(previous_analysis.key)
176 previous_request.Save() 172 previous_request.Save()
177 173
178 response = self.test_app.get('/waterfall/check-flake', params={ 174 response = self.test_app.get('/waterfall/check-flake', params={
179 'master_name': master_name, 175 'master_name': master_name,
180 'builder_name': builder_name, 176 'builder_name': builder_name,
181 'build_number': build_number, 177 'build_number': build_number,
182 'step_name': step_name, 178 'step_name': step_name,
183 'test_name': test_name, 179 'test_name': test_name,
184 'format': 'json'}) 180 'format': 'json'})
185 181
186 expected_check_flake_result = { 182 expected_check_flake_result = {
187 'pass_rates': [[int(build_number), success_rate]], 183 'pass_rates': [[build_number - 1, success_rate]],
188 'analysis_status': STATUS_TO_DESCRIPTION.get(previous_analysis.status), 184 'analysis_status': STATUS_TO_DESCRIPTION.get(previous_analysis.status),
189 'master_name': master_name, 185 'master_name': master_name,
190 'builder_name': builder_name, 186 'builder_name': builder_name,
191 'build_number': int(build_number), 187 'build_number': build_number - 1,
192 'step_name': step_name, 188 'step_name': step_name,
193 'test_name': test_name, 189 'test_name': test_name,
194 'request_time': '2016-10-01 12:10:00 UTC', 190 'request_time': '2016-10-01 12:10:00 UTC',
195 'task_number': 1, 191 'task_number': 1,
196 'error': None, 192 'error': None,
197 'iterations_to_rerun': 100, 193 'iterations_to_rerun': 100,
198 'pending_time': '00:00:05', 194 'pending_time': '00:00:05',
199 'duration': '00:59:55', 195 'duration': '00:59:55',
200 'suspected_flake': { 196 'suspected_flake': {
201 'build_number': 100, 197 'build_number': 100,
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 self.assertEqual( 298 self.assertEqual(
303 CheckFlake()._ValidateInput( 299 CheckFlake()._ValidateInput(
304 'm', 'b', '1', 's', None, '').get('data', {}).get('error_message'), 300 'm', 'b', '1', 's', None, '').get('data', {}).get('error_message'),
305 'Test name must be specified') 301 'Test name must be specified')
306 self.assertEqual( 302 self.assertEqual(
307 CheckFlake()._ValidateInput( 303 CheckFlake()._ValidateInput(
308 'm', 'b', '1', 's', 't', 'a').get('data', {}).get('error_message'), 304 'm', 'b', '1', 's', 't', 'a').get('data', {}).get('error_message'),
309 'Bug id (optional) must be an int') 305 'Bug id (optional) must be an int')
310 306
311 307
OLDNEW
« no previous file with comments | « appengine/findit/handlers/flake/check_flake.py ('k') | appengine/findit/handlers/test/config_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698