| 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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 analysis.Save() | 57 analysis.Save() |
| 58 request2.analyses.append(analysis.key) | 58 request2.analyses.append(analysis.key) |
| 59 | 59 |
| 60 request1.CopyFrom(request2) | 60 request1.CopyFrom(request2) |
| 61 | 61 |
| 62 self.assertEqual(request2.is_step, request1.is_step) | 62 self.assertEqual(request2.is_step, request1.is_step) |
| 63 self.assertEqual(request2.bug_id, request1.bug_id) | 63 self.assertEqual(request2.bug_id, request1.bug_id) |
| 64 self.assertEqual(request2.user_emails, request1.user_emails) | 64 self.assertEqual(request2.user_emails, request1.user_emails) |
| 65 self.assertEqual(request2.build_steps, request1.build_steps) | 65 self.assertEqual(request2.build_steps, request1.build_steps) |
| 66 self.assertEqual(request2.analyses, request1.analyses) | 66 self.assertEqual(request2.analyses, request1.analyses) |
| 67 |
| 68 def testGetNormalizedConfigurationNames(self): |
| 69 master_name = 'm' |
| 70 builder_name = 'b' |
| 71 build_number = 123 |
| 72 step_name = 's' |
| 73 test_name = 't' |
| 74 reported_time = datetime(2016, 11, 16) |
| 75 request = FlakeAnalysisRequest.Create(test_name, False, 123) |
| 76 build_step = BuildStep.Create( |
| 77 master_name, builder_name, build_number, step_name, reported_time) |
| 78 build_step.wf_master_name = master_name |
| 79 build_step.wf_builder_name = builder_name |
| 80 build_step.wf_build_number = build_number |
| 81 build_step.wf_step_name = step_name |
| 82 request.build_steps.append(build_step) |
| 83 self.assertEqual((None, None), request._GetNormalizedConfigurationNames( |
| 84 'm2', 'b2')) |
| 85 self.assertEqual( |
| 86 (master_name, builder_name), |
| 87 request._GetNormalizedConfigurationNames(master_name, builder_name)) |
| 88 |
| 89 @mock.patch.object(FlakeAnalysisRequest, '_GetNormalizedConfigurationNames', |
| 90 return_value=(None, None)) |
| 91 def testFindMatchingAnalysisNoMatchingConfiguration(self, _): |
| 92 request = FlakeAnalysisRequest.Create('test', False, 123) |
| 93 analysis = MasterFlakeAnalysis.Create('m', 'b', 123, 's', 'test') |
| 94 analysis.Save() |
| 95 request.analyses.append(analysis.key) |
| 96 request.Save() |
| 97 |
| 98 self.assertIsNone( |
| 99 request.FindMatchingAnalysisForConfiguration('m', 'b')) |
| 100 |
| 101 @mock.patch.object(FlakeAnalysisRequest, '_GetNormalizedConfigurationNames', |
| 102 return_value=('m1', 'b1')) |
| 103 def testFindMatchingAnalysisForWrongConfiguration(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=('m', 'b')) |
| 115 def testFindMatchingAnalysisForConfiguration(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.assertEqual( |
| 123 analysis, |
| 124 request.FindMatchingAnalysisForConfiguration('m', 'b')) |
| OLD | NEW |