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

Side by Side Diff: appengine/findit/model/flake/test/master_flake_analysis_test.py

Issue 2608853002: [Findit] Adding suspected CL to master flake analysis in preparation for try jobs (Closed)
Patch Set: Addressing comment Created 3 years, 11 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 from datetime import datetime 5 from datetime import datetime
6 6
7 import unittest 7 from gae_libs.testcase import TestCase
8 8
9 from model import analysis_status 9 from model import analysis_status
10 from model import result_status 10 from model import result_status
11 from model import triage_status 11 from model import triage_status
12 from model.flake.flake_culprit import FlakeCulprit
12 from model.flake.master_flake_analysis import DataPoint 13 from model.flake.master_flake_analysis import DataPoint
13 from model.flake.master_flake_analysis import MasterFlakeAnalysis 14 from model.flake.master_flake_analysis import MasterFlakeAnalysis
14 15
15 16
16 class MasterFlakeAnalysisTest(unittest.TestCase): 17 class MasterFlakeAnalysisTest(TestCase):
17 18
18 def testMasterFlakeAnalysisStatusIsCompleted(self): 19 def testMasterFlakeAnalysisStatusIsCompleted(self):
19 for status in (analysis_status.COMPLETED, analysis_status.ERROR): 20 for status in (analysis_status.COMPLETED, analysis_status.ERROR):
20 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't') 21 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
21 analysis.status = status 22 analysis.status = status
22 self.assertTrue(analysis.completed) 23 self.assertTrue(analysis.completed)
23 24
24 def testMasterFlakeAnalysisStatusIsNotCompleted(self): 25 def testMasterFlakeAnalysisStatusIsNotCompleted(self):
25 for status in (analysis_status.PENDING, analysis_status.RUNNING): 26 for status in (analysis_status.PENDING, analysis_status.RUNNING):
26 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't') 27 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 103
103 def testReset(self): 104 def testReset(self):
104 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't') 105 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
105 analysis.swarming_rerun_results = [{}] 106 analysis.swarming_rerun_results = [{}]
106 analysis.status = analysis_status.RUNNING 107 analysis.status = analysis_status.RUNNING
107 analysis.correct_regression_range = True 108 analysis.correct_regression_range = True
108 analysis.correct_culprit = False 109 analysis.correct_culprit = False
109 analysis.correct_culprit = None 110 analysis.correct_culprit = None
110 analysis.data_points = [DataPoint()] 111 analysis.data_points = [DataPoint()]
111 analysis.suspected_flake_build_number = 123 112 analysis.suspected_flake_build_number = 123
113 analysis.culprit = FlakeCulprit.Create('r', 'a1b2c3d4', 12345, 'url')
114 analysis.try_job_status = analysis_status.COMPLETED
112 analysis.Reset() 115 analysis.Reset()
113 116
114 self.assertEqual([], analysis.swarming_rerun_results) 117 self.assertEqual([], analysis.swarming_rerun_results)
115 self.assertEqual(analysis_status.PENDING, analysis.status) 118 self.assertEqual(analysis_status.PENDING, analysis.status)
116 self.assertIsNone(analysis.correct_regression_range) 119 self.assertIsNone(analysis.correct_regression_range)
117 self.assertIsNone(analysis.correct_culprit) 120 self.assertIsNone(analysis.correct_culprit)
118 self.assertIsNone(analysis.suspected_flake_build_number) 121 self.assertIsNone(analysis.suspected_flake_build_number)
119 self.assertEqual([], analysis.data_points) 122 self.assertEqual([], analysis.data_points)
123 self.assertIsNone(analysis.culprit)
124 self.assertIsNone(analysis.try_job_status)
120 125
121 def testGetErrorMessage(self): 126 def testGetErrorMessage(self):
122 cases = [ 127 cases = [
123 (None, None), 128 (None, None),
124 ('error', {'message': 'error', 'code': 'code'}), 129 ('error', {'message': 'error', 'code': 'code'}),
125 ] 130 ]
126 for expected_error_message, error in cases: 131 for expected_error_message, error in cases:
127 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't') 132 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
128 analysis.error = error 133 analysis.error = error
129 self.assertEqual(expected_error_message, analysis.error_message) 134 self.assertEqual(expected_error_message, analysis.error_message)
(...skipping 17 matching lines...) Expand all
147 152
148 key = MasterFlakeAnalysis.Create( 153 key = MasterFlakeAnalysis.Create(
149 master_name, builder_name, build_number, step_name, test_name).key 154 master_name, builder_name, build_number, step_name, test_name).key
150 155
151 self.assertEqual( 156 self.assertEqual(
152 (None, None), 157 (None, None),
153 MasterFlakeAnalysis.GetBuildConfigurationFromKey(None)) 158 MasterFlakeAnalysis.GetBuildConfigurationFromKey(None))
154 self.assertEqual( 159 self.assertEqual(
155 (master_name, builder_name), 160 (master_name, builder_name),
156 MasterFlakeAnalysis.GetBuildConfigurationFromKey(key)) 161 MasterFlakeAnalysis.GetBuildConfigurationFromKey(key))
162
163 def testGetDataPointOfSuspectedBuildNoSuspectedFlakeBuildNumber(self):
164 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
165 self.assertIsNone(analysis.GetDataPointOfSuspectedBuild())
166
167 def testGetDataPointOfSuspectedBuild(self):
168 expected_build_number = 123
169 data_point = DataPoint()
170 data_point.build_number = expected_build_number
171
172 analysis = MasterFlakeAnalysis.Create('m', 'b', 125, 's', 't')
173 analysis.suspected_flake_build_number = expected_build_number
174 analysis.data_points.append(data_point)
175
176 suspected_data_point = analysis.GetDataPointOfSuspectedBuild()
177 self.assertEqual(expected_build_number, suspected_data_point.build_number)
178
179 def testGetDataPointOfSuspectedBuildNoDatapoint(self):
180 # This scenario should not happen.
181 expected_build_number = 123
182 unexpected_build_number = 124
183 data_point = DataPoint()
184 data_point.build_number = expected_build_number
185
186 analysis = MasterFlakeAnalysis.Create('m', 'b', 125, 's', 't')
187 analysis.suspected_flake_build_number = unexpected_build_number
188 analysis.data_points.append(data_point)
189
190 self.assertIsNone(analysis.GetDataPointOfSuspectedBuild())
191
192
OLDNEW
« no previous file with comments | « appengine/findit/model/flake/test/flake_culprit_test.py ('k') | appengine/findit/model/wf_try_job_data.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698