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

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: 2016 -> 2017 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
7 import unittest 6 import unittest
8 7
9 from model import analysis_status 8 from model import analysis_status
10 from model import result_status 9 from model import result_status
11 from model import triage_status 10 from model import triage_status
11 from model.flake.flake_culprit import FlakeCulprit
12 from model.flake.master_flake_analysis import DataPoint 12 from model.flake.master_flake_analysis import DataPoint
13 from model.flake.master_flake_analysis import MasterFlakeAnalysis 13 from model.flake.master_flake_analysis import MasterFlakeAnalysis
14 14
15 15
16 class MasterFlakeAnalysisTest(unittest.TestCase): 16 class MasterFlakeAnalysisTest(unittest.TestCase):
17 17
18 def testMasterFlakeAnalysisStatusIsCompleted(self): 18 def testMasterFlakeAnalysisStatusIsCompleted(self):
19 for status in (analysis_status.COMPLETED, analysis_status.ERROR): 19 for status in (analysis_status.COMPLETED, analysis_status.ERROR):
20 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't') 20 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
21 analysis.status = status 21 analysis.status = status
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 102
103 def testReset(self): 103 def testReset(self):
104 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't') 104 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
105 analysis.swarming_rerun_results = [{}] 105 analysis.swarming_rerun_results = [{}]
106 analysis.status = analysis_status.RUNNING 106 analysis.status = analysis_status.RUNNING
107 analysis.correct_regression_range = True 107 analysis.correct_regression_range = True
108 analysis.correct_culprit = False 108 analysis.correct_culprit = False
109 analysis.correct_culprit = None 109 analysis.correct_culprit = None
110 analysis.data_points = [DataPoint()] 110 analysis.data_points = [DataPoint()]
111 analysis.suspected_flake_build_number = 123 111 analysis.suspected_flake_build_number = 123
112 analysis.culprit = FlakeCulprit.Create('r', 'a1b2c3d4', 12345, 'url')
113 analysis.try_job_status = analysis_status.COMPLETED
112 analysis.Reset() 114 analysis.Reset()
113 115
114 self.assertEqual([], analysis.swarming_rerun_results) 116 self.assertEqual([], analysis.swarming_rerun_results)
115 self.assertEqual(analysis_status.PENDING, analysis.status) 117 self.assertEqual(analysis_status.PENDING, analysis.status)
116 self.assertIsNone(analysis.correct_regression_range) 118 self.assertIsNone(analysis.correct_regression_range)
117 self.assertIsNone(analysis.correct_culprit) 119 self.assertIsNone(analysis.correct_culprit)
118 self.assertIsNone(analysis.suspected_flake_build_number) 120 self.assertIsNone(analysis.suspected_flake_build_number)
119 self.assertEqual([], analysis.data_points) 121 self.assertEqual([], analysis.data_points)
122 self.assertIsNone(analysis.culprit)
123 self.assertIsNone(analysis.try_job_status)
120 124
121 def testGetErrorMessage(self): 125 def testGetErrorMessage(self):
122 cases = [ 126 cases = [
123 (None, None), 127 (None, None),
124 ('error', {'message': 'error', 'code': 'code'}), 128 ('error', {'message': 'error', 'code': 'code'}),
125 ] 129 ]
126 for expected_error_message, error in cases: 130 for expected_error_message, error in cases:
127 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't') 131 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
128 analysis.error = error 132 analysis.error = error
129 self.assertEqual(expected_error_message, analysis.error_message) 133 self.assertEqual(expected_error_message, analysis.error_message)
(...skipping 17 matching lines...) Expand all
147 151
148 key = MasterFlakeAnalysis.Create( 152 key = MasterFlakeAnalysis.Create(
149 master_name, builder_name, build_number, step_name, test_name).key 153 master_name, builder_name, build_number, step_name, test_name).key
150 154
151 self.assertEqual( 155 self.assertEqual(
152 (None, None), 156 (None, None),
153 MasterFlakeAnalysis.GetBuildConfigurationFromKey(None)) 157 MasterFlakeAnalysis.GetBuildConfigurationFromKey(None))
154 self.assertEqual( 158 self.assertEqual(
155 (master_name, builder_name), 159 (master_name, builder_name),
156 MasterFlakeAnalysis.GetBuildConfigurationFromKey(key)) 160 MasterFlakeAnalysis.GetBuildConfigurationFromKey(key))
161
162 def testGetSuspectedFlakeDataPointNoSuspectedFlakeBuildNumber(self):
163 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 't')
164 self.assertIsNone(analysis.GetSuspectedFlakeDataPoint())
165
166 def testGetSuspectedFlakeDataPoint(self):
167 expected_build_number = 123
168 data_point = DataPoint()
169 data_point.build_number = expected_build_number
170
171 analysis = MasterFlakeAnalysis.Create('m', 'b', 125, 's', 't')
172 analysis.suspected_flake_build_number = expected_build_number
173 analysis.data_points.append(data_point)
174
175 suspected_data_point = analysis.GetSuspectedFlakeDataPoint()
176 self.assertEqual(expected_build_number, suspected_data_point.build_number)
177
178 def testGetSuspectedFlakeDataPointNoDatapoint(self):
179 # This scenario should not happen.
180 expected_build_number = 123
181 unexpected_build_number = 124
182 data_point = DataPoint()
183 data_point.build_number = expected_build_number
184
185 analysis = MasterFlakeAnalysis.Create('m', 'b', 125, 's', 't')
186 analysis.suspected_flake_build_number = unexpected_build_number
187 analysis.data_points.append(data_point)
188
189 self.assertIsNone(analysis.GetSuspectedFlakeDataPoint())
190
191
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698