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

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

Issue 2369333002: [Findit] Capture versionized metadata for master_flake_analysis (Closed)
Patch Set: Fixing nits Created 4 years, 2 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 re 5 import re
6 6
7 import webapp2 7 import webapp2
8 import webtest 8 import webtest
9 9
10 from handlers.flake import check_flake 10 from handlers.flake import check_flake
11 from model.flake.master_flake_analysis import DataPoint
11 from model.flake.master_flake_analysis import MasterFlakeAnalysis 12 from model.flake.master_flake_analysis import MasterFlakeAnalysis
12 from model import analysis_status 13 from model import analysis_status
13 from model.analysis_status import STATUS_TO_DESCRIPTION 14 from model.analysis_status import STATUS_TO_DESCRIPTION
14 from waterfall.test import wf_testcase 15 from waterfall.test import wf_testcase
15 16
16 17
17 class CheckFlakeTest(wf_testcase.WaterfallTestCase): 18 class CheckFlakeTest(wf_testcase.WaterfallTestCase):
18 app_module = webapp2.WSGIApplication([ 19 app_module = webapp2.WSGIApplication([
19 ('/waterfall/check-flake', check_flake.CheckFlake), 20 ('/waterfall/check-flake', check_flake.CheckFlake),
20 ], debug=True) 21 ], debug=True)
21 22
22 def _CreateAndSaveMasterFlakeAnalysis(
23 self, master_name, builder_name, build_number,
24 step_name, test_name, status):
25 analysis = MasterFlakeAnalysis.Create(
26 master_name, builder_name, build_number, step_name, test_name)
27 analysis.status = status
28 analysis.put()
29 return analysis
30
31 def testCorpUserCanScheduleANewAnalysis(self): 23 def testCorpUserCanScheduleANewAnalysis(self):
32 master_name = 'm' 24 master_name = 'm'
33 builder_name = 'b' 25 builder_name = 'b'
34 build_number = '123' 26 build_number = '123'
35 step_name = 's' 27 step_name = 's'
36 test_name = 't' 28 test_name = 't'
37 29
38 self.mock_current_user(user_email='test@google.com') 30 self.mock_current_user(user_email='test@google.com')
39 31
40 response = self.test_app.get('/waterfall/check-flake', params={ 32 response = self.test_app.get('/waterfall/check-flake', params={
(...skipping 26 matching lines...) Expand all
67 'test_name': test_name 59 'test_name': test_name
68 }) 60 })
69 61
70 def testAnyoneCanViewScheduledAnalysis(self): 62 def testAnyoneCanViewScheduledAnalysis(self):
71 master_name = 'm' 63 master_name = 'm'
72 builder_name = 'b' 64 builder_name = 'b'
73 build_number = '123' 65 build_number = '123'
74 step_name = 's' 66 step_name = 's'
75 test_name = 't' 67 test_name = 't'
76 success_rate = .9 68 success_rate = .9
77 status = analysis_status.PENDING
78 69
79 master_flake_analysis = self._CreateAndSaveMasterFlakeAnalysis( 70 master_flake_analysis = MasterFlakeAnalysis.Create(
80 master_name, builder_name, build_number, step_name, 71 master_name, builder_name, build_number, step_name, test_name)
81 test_name, status) 72 master_flake_analysis.status = analysis_status.PENDING
82 master_flake_analysis.build_numbers.append(int(build_number)) 73 data_point = DataPoint()
83 master_flake_analysis.success_rates.append(success_rate) 74 data_point.build_number = int(build_number)
84 master_flake_analysis.put() 75 data_point.pass_rate = success_rate
76 master_flake_analysis.data_points.append(data_point)
77 master_flake_analysis.Save()
85 78
86 response = self.test_app.get('/waterfall/check-flake', params={ 79 response = self.test_app.get('/waterfall/check-flake', params={
87 'master_name': master_name, 80 'master_name': master_name,
88 'builder_name': builder_name, 81 'builder_name': builder_name,
89 'build_number': build_number, 82 'build_number': build_number,
90 'step_name': step_name, 83 'step_name': step_name,
91 'test_name': test_name, 84 'test_name': test_name,
92 'format': 'json'}) 85 'format': 'json'})
93 86
94 self.assertEquals(200, response.status_int) 87 expected_check_flake_result = {
95 expected_check_flake_result ={ 88 'pass_rates': [[int(build_number), success_rate]],
96 'success_rates': [[int(build_number), success_rate]],
97 'analysis_status': STATUS_TO_DESCRIPTION.get( 89 'analysis_status': STATUS_TO_DESCRIPTION.get(
98 master_flake_analysis.status), 90 master_flake_analysis.status),
99 'master_name': master_name, 91 'master_name': master_name,
100 'builder_name': builder_name, 92 'builder_name': builder_name,
101 'build_number': int(build_number), 93 'build_number': int(build_number),
102 'step_name': step_name, 94 'step_name': step_name,
103 'test_name': test_name, 95 'test_name': test_name,
104 'suspected_flake_build_number': None 96 'suspected_flake_build_number': None
105 } 97 }
98
99 self.assertEquals(200, response.status_int)
106 self.assertEqual(expected_check_flake_result, response.json_body) 100 self.assertEqual(expected_check_flake_result, response.json_body)
OLDNEW
« no previous file with comments | « appengine/findit/handlers/flake/check_flake.py ('k') | appengine/findit/model/flake/flake_swarming_task.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698