| OLD | NEW |
| 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 import mock |
| 6 | 7 |
| 7 from common.findit_testcase import FinditTestCase | 8 from common.findit_testcase import FinditTestCase |
| 8 from model import analysis_status | |
| 9 from model.flake.flake_analysis_request import BuildStep | 9 from model.flake.flake_analysis_request import BuildStep |
| 10 from model.flake.flake_analysis_request import FlakeAnalysisRequest | 10 from model.flake.flake_analysis_request import FlakeAnalysisRequest |
| 11 from model.flake.master_flake_analysis import MasterFlakeAnalysis | 11 from model.flake.master_flake_analysis import MasterFlakeAnalysis |
| 12 | 12 |
| 13 | 13 |
| 14 class FlakeAnalysisRequestTest(FinditTestCase): | 14 class FlakeAnalysisRequestTest(FinditTestCase): |
| 15 | 15 |
| 16 def testStripMasterPrefix(self): | 16 def testStripMasterPrefix(self): |
| 17 cases = { | 17 cases = { |
| 18 'master.tryserver.chromium.linux': 'tryserver.chromium.linux', | 18 'master.tryserver.chromium.linux': 'tryserver.chromium.linux', |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 request = FlakeAnalysisRequest.Create('flaky_test', False, 123) | 69 request = FlakeAnalysisRequest.Create('flaky_test', False, 123) |
| 70 request.AddBuildStep( | 70 request.AddBuildStep( |
| 71 'tryserver.chromium.linux', 'b1', 1, 's', datetime(2016, 11, 14)) | 71 'tryserver.chromium.linux', 'b1', 1, 's', datetime(2016, 11, 14)) |
| 72 self.assertTrue(request.on_cq) | 72 self.assertTrue(request.on_cq) |
| 73 | 73 |
| 74 def testWaterfallFlake(self): | 74 def testWaterfallFlake(self): |
| 75 request = FlakeAnalysisRequest.Create('flaky_test', False, 123) | 75 request = FlakeAnalysisRequest.Create('flaky_test', False, 123) |
| 76 request.AddBuildStep( | 76 request.AddBuildStep( |
| 77 'chromium.linux', 'b1', 1, 's', datetime(2016, 11, 14)) | 77 'chromium.linux', 'b1', 1, 's', datetime(2016, 11, 14)) |
| 78 self.assertFalse(request.on_cq) | 78 self.assertFalse(request.on_cq) |
| 79 |
| 80 def testGetNormalizedConfigurationNames(self): |
| 81 master_name = 'm' |
| 82 builder_name = 'b' |
| 83 build_number = 123 |
| 84 step_name = 's' |
| 85 test_name = 't' |
| 86 reported_time = datetime(2016, 11, 16) |
| 87 request = FlakeAnalysisRequest.Create(test_name, False, 123) |
| 88 build_step = BuildStep.Create( |
| 89 master_name, builder_name, build_number, step_name, reported_time) |
| 90 build_step.wf_master_name = master_name |
| 91 build_step.wf_builder_name = builder_name |
| 92 build_step.wf_build_number = build_number |
| 93 build_step.wf_step_name = step_name |
| 94 request.build_steps.append(build_step) |
| 95 self.assertEqual((None, None), request._GetNormalizedConfigurationNames( |
| 96 'm2', 'b2')) |
| 97 self.assertEqual( |
| 98 (master_name, builder_name), |
| 99 request._GetNormalizedConfigurationNames(master_name, builder_name)) |
| 100 |
| 101 @mock.patch.object(FlakeAnalysisRequest, '_GetNormalizedConfigurationNames', |
| 102 return_value=(None, None)) |
| 103 def testFindMatchingAnalysisNoMatchingConfiguration(self, _): |
| 104 request = FlakeAnalysisRequest.Create('test', False, 123) |
| 105 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 'test') |
| 106 analysis.Save() |
| 107 request.analyses.append(analysis.key) |
| 108 request.Save() |
| 109 |
| 110 self.assertIsNone( |
| 111 request.FindMatchingAnalysisForConfiguration('m', 'b')) |
| 112 |
| 113 @mock.patch.object(FlakeAnalysisRequest, '_GetNormalizedConfigurationNames', |
| 114 return_value=('m1', 'b1')) |
| 115 def testFindMatchingAnalysisForWrongConfiguration(self, _): |
| 116 request = FlakeAnalysisRequest.Create('test', False, 123) |
| 117 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 'test') |
| 118 analysis.Save() |
| 119 request.analyses.append(analysis.key) |
| 120 request.Save() |
| 121 |
| 122 self.assertIsNone( |
| 123 request.FindMatchingAnalysisForConfiguration('m', 'b')) |
| 124 |
| 125 @mock.patch.object(FlakeAnalysisRequest, '_GetNormalizedConfigurationNames', |
| 126 return_value=('m', 'b')) |
| 127 def testFindMatchingAnalysisForConfiguration(self, _): |
| 128 request = FlakeAnalysisRequest.Create('test', False, 123) |
| 129 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 'test') |
| 130 analysis.Save() |
| 131 request.analyses.append(analysis.key) |
| 132 request.Save() |
| 133 |
| 134 self.assertEqual( |
| 135 analysis, |
| 136 request.FindMatchingAnalysisForConfiguration('m', 'b')) |
| OLD | NEW |