| 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 import copy | 5 import copy |
| 6 from datetime import datetime | 6 from datetime import datetime |
| 7 | 7 |
| 8 from crash.crash_report import CrashReport |
| 8 from crash.type_enums import CrashClient | 9 from crash.type_enums import CrashClient |
| 9 from crash.test.predator_testcase import PredatorTestCase | 10 from crash.test.predator_testcase import PredatorTestCase |
| 10 from model import analysis_status | 11 from model import analysis_status |
| 11 from model import result_status | 12 from model import result_status |
| 12 from model import triage_status | 13 from model import triage_status |
| 13 from model.crash.crash_analysis import CrashAnalysis | 14 from model.crash.crash_analysis import CrashAnalysis |
| 14 from model.crash.fracas_crash_analysis import FracasCrashAnalysis | 15 from model.crash.fracas_crash_analysis import FracasCrashAnalysis |
| 15 | 16 |
| 16 | 17 |
| 17 class CrashAnalysisTest(PredatorTestCase): | 18 class CrashAnalysisTest(PredatorTestCase): |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 analysis = CrashAnalysis() | 98 analysis = CrashAnalysis() |
| 98 analysis.Update(update) | 99 analysis.Update(update) |
| 99 self.assertFalse(hasattr(analysis, 'dummy')) | 100 self.assertFalse(hasattr(analysis, 'dummy')) |
| 100 | 101 |
| 101 def testCreateCrashAnalysis(self): | 102 def testCreateCrashAnalysis(self): |
| 102 crash_identifiers = {'signature': 'sig'} | 103 crash_identifiers = {'signature': 'sig'} |
| 103 analysis = CrashAnalysis.Create(crash_identifiers) | 104 analysis = CrashAnalysis.Create(crash_identifiers) |
| 104 analysis.put() | 105 analysis.put() |
| 105 self.assertIsNotNone(analysis) | 106 self.assertIsNotNone(analysis) |
| 106 self.assertEqual(CrashAnalysis.Get(crash_identifiers), analysis) | 107 self.assertEqual(CrashAnalysis.Get(crash_identifiers), analysis) |
| 108 |
| 109 def testInitializeByCrashData(self): |
| 110 """Tests initializing ``CrashAnalysis`` from ``CrashData``.""" |
| 111 chrome_version = '50.2500.0.0' |
| 112 signature = 'signature/here' |
| 113 channel = 'canary' |
| 114 platform = 'mac' |
| 115 raw_crash_data = self.GetDummyChromeCrashData( |
| 116 client_id=CrashClient.FRACAS, |
| 117 channel=channel, platform=platform, |
| 118 signature=signature, version=chrome_version, |
| 119 process_type='renderer') |
| 120 findit = self.GetMockFindit(client_id=CrashClient.FRACAS) |
| 121 crash_data = findit.GetCrashData(raw_crash_data) |
| 122 analysis = CrashAnalysis() |
| 123 analysis.Initialize(crash_data) |
| 124 |
| 125 self.assertEqual(analysis.stack_trace, crash_data.stacktrace) |
| 126 self.assertEqual(analysis.signature, crash_data.signature) |
| 127 self.assertEqual(analysis.platform, crash_data.platform) |
| 128 self.assertEqual(analysis.regression_range, crash_data.regression_range) |
| 129 self.assertEqual(analysis.dependencies, crash_data.dependencies) |
| 130 self.assertEqual(analysis.dependency_rolls, crash_data.dependency_rolls) |
| 131 |
| 132 def testToCrashReport(self): |
| 133 """Tests converting ``CrashAnalysis`` to ``CrashReport``.""" |
| 134 chrome_version = '50.2500.0.0' |
| 135 signature = 'signature/here' |
| 136 channel = 'canary' |
| 137 platform = 'mac' |
| 138 regression_range = ('50.2450.0.2', '50.2982.0.0') |
| 139 raw_crash_data = self.GetDummyChromeCrashData( |
| 140 client_id=CrashClient.FRACAS, |
| 141 channel=channel, platform=platform, |
| 142 signature=signature, version=chrome_version, |
| 143 regression_range=regression_range, |
| 144 process_type='renderer') |
| 145 findit = self.GetMockFindit(client_id=CrashClient.FRACAS) |
| 146 crash_data = findit.GetCrashData(raw_crash_data) |
| 147 analysis = CrashAnalysis() |
| 148 analysis.Initialize(crash_data) |
| 149 |
| 150 expected_crash_report = CrashReport(chrome_version, signature, platform, |
| 151 None, regression_range, {}, {}) |
| 152 self.assertTupleEqual(analysis.ToCrashReport(), expected_crash_report) |
| OLD | NEW |