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

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

Issue 2510223003: [Findit] Fixing analysis mismatch in check flake (Closed)
Patch Set: rebase 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
11 11
12 from google.appengine.api import users 12 from google.appengine.api import users
13 13
14 from handlers.flake import check_flake 14 from handlers.flake import check_flake
15 from handlers.flake.check_flake import CheckFlake 15 from handlers.flake.check_flake import CheckFlake
16 from model import analysis_status 16 from model import analysis_status
17 from model.analysis_status import STATUS_TO_DESCRIPTION 17 from model.analysis_status import STATUS_TO_DESCRIPTION
18 from model.flake.flake_analysis_request import BuildStep
18 from model.flake.flake_analysis_request import FlakeAnalysisRequest 19 from model.flake.flake_analysis_request import FlakeAnalysisRequest
19 from model.flake.master_flake_analysis import DataPoint 20 from model.flake.master_flake_analysis import DataPoint
20 from model.flake.master_flake_analysis import MasterFlakeAnalysis 21 from model.flake.master_flake_analysis import MasterFlakeAnalysis
21 from waterfall.flake import flake_analysis_service 22 from waterfall.flake import flake_analysis_service
22 from waterfall.test import wf_testcase 23 from waterfall.test import wf_testcase
23 24
24 25
25 class CheckFlakeTest(wf_testcase.WaterfallTestCase): 26 class CheckFlakeTest(wf_testcase.WaterfallTestCase):
26 app_module = webapp2.WSGIApplication([ 27 app_module = webapp2.WSGIApplication([
27 ('/waterfall/check-flake', check_flake.CheckFlake), 28 ('/waterfall/check-flake', check_flake.CheckFlake),
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 previous_analysis.data_points.append(data_point) 160 previous_analysis.data_points.append(data_point)
160 previous_analysis.status = analysis_status.COMPLETED 161 previous_analysis.status = analysis_status.COMPLETED
161 previous_analysis.suspected_flake_build_number = 100 162 previous_analysis.suspected_flake_build_number = 100
162 previous_analysis.request_time = datetime.datetime(2016, 10, 01, 12, 10, 00) 163 previous_analysis.request_time = datetime.datetime(2016, 10, 01, 12, 10, 00)
163 previous_analysis.start_time = datetime.datetime(2016, 10, 01, 12, 10, 05) 164 previous_analysis.start_time = datetime.datetime(2016, 10, 01, 12, 10, 05)
164 previous_analysis.end_time = datetime.datetime(2016, 10, 01, 13, 10, 00) 165 previous_analysis.end_time = datetime.datetime(2016, 10, 01, 13, 10, 00)
165 previous_analysis.algorithm_parameters = {'iterations_to_rerun': 100} 166 previous_analysis.algorithm_parameters = {'iterations_to_rerun': 100}
166 previous_analysis.Save() 167 previous_analysis.Save()
167 168
168 previous_request = FlakeAnalysisRequest.Create(test_name, False, None) 169 previous_request = FlakeAnalysisRequest.Create(test_name, False, None)
169 previous_request.AddBuildStep( 170 build_step = BuildStep.Create(
170 master_name, builder_name, build_number, step_name, None) 171 master_name, builder_name, build_number, step_name, None)
172 build_step.wf_master_name = build_step.master_name
173 build_step.wf_builder_name = build_step.builder_name
174 build_step.wf_build_number = build_step.build_number
175 build_step.wf_step_name = build_step.step_name
176 previous_request.build_steps.append(build_step)
171 previous_request.analyses.append(previous_analysis.key) 177 previous_request.analyses.append(previous_analysis.key)
172 previous_request.Save() 178 previous_request.Save()
173 179
174 response = self.test_app.get('/waterfall/check-flake', params={ 180 response = self.test_app.get('/waterfall/check-flake', params={
175 'master_name': master_name, 181 'master_name': master_name,
176 'builder_name': builder_name, 182 'builder_name': builder_name,
177 'build_number': build_number, 183 'build_number': build_number,
178 'step_name': step_name, 184 'step_name': step_name,
179 'test_name': test_name, 185 'test_name': test_name,
180 'format': 'json'}) 186 'format': 'json'})
(...skipping 30 matching lines...) Expand all
211 builder_name = 'b' 217 builder_name = 'b'
212 build_number = 123 218 build_number = 123
213 step_name = 's' 219 step_name = 's'
214 test_name = 't' 220 test_name = 't'
215 221
216 previous_request = FlakeAnalysisRequest.Create(test_name, False, None) 222 previous_request = FlakeAnalysisRequest.Create(test_name, False, None)
217 previous_request.AddBuildStep( 223 previous_request.AddBuildStep(
218 master_name, builder_name, build_number, step_name, None) 224 master_name, builder_name, build_number, step_name, None)
219 previous_request.swarmed = False 225 previous_request.swarmed = False
220 previous_request.supported = False 226 previous_request.supported = False
221 previous_request.Save()
222 227
223 self.assertRaisesRegexp( 228 self.assertRaisesRegexp(
224 webtest.app.AppError, 229 webtest.app.AppError,
225 re.compile('.*not supported.*', re.MULTILINE | re.DOTALL), 230 re.compile('.*not supported.*', re.MULTILINE | re.DOTALL),
226 self.test_app.get, 231 self.test_app.get,
227 '/waterfall/check-flake', 232 '/waterfall/check-flake',
228 params={ 233 params={
229 'master_name': master_name, 234 'master_name': master_name,
230 'builder_name': builder_name, 235 'builder_name': builder_name,
231 'build_number': build_number, 236 'build_number': build_number,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 'm', 'b', '1', None, 't', '').get('data', {}).get('error_message'), 301 'm', 'b', '1', None, 't', '').get('data', {}).get('error_message'),
297 'Step name must be specified') 302 'Step name must be specified')
298 self.assertEqual( 303 self.assertEqual(
299 CheckFlake()._ValidateInput( 304 CheckFlake()._ValidateInput(
300 'm', 'b', '1', 's', None, '').get('data', {}).get('error_message'), 305 'm', 'b', '1', 's', None, '').get('data', {}).get('error_message'),
301 'Test name must be specified') 306 'Test name must be specified')
302 self.assertEqual( 307 self.assertEqual(
303 CheckFlake()._ValidateInput( 308 CheckFlake()._ValidateInput(
304 'm', 'b', '1', 's', 't', 'a').get('data', {}).get('error_message'), 309 'm', 'b', '1', 's', 't', 'a').get('data', {}).get('error_message'),
305 'Bug id (optional) must be an int') 310 'Bug id (optional) must be an int')
OLDNEW
« no previous file with comments | « appengine/findit/handlers/flake/check_flake.py ('k') | appengine/findit/model/flake/flake_analysis_request.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698