| 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 common.pipeline_wrapper import pipeline_handlers | 5 from common.pipeline_wrapper import pipeline_handlers |
| 6 from crash import crash_pipeline | 6 from crash import crash_pipeline |
| 7 from crash.culprit import Culprit | 7 from crash.culprit import Culprit |
| 8 from crash.findit_for_chromecrash import FinditForFracas | 8 from crash.findit_for_chromecrash import FinditForFracas |
| 9 from crash.suspect import Suspect | 9 from crash.suspect import Suspect |
| 10 from crash.test.predator_testcase import PredatorTestCase | 10 from crash.test.predator_testcase import PredatorTestCase |
| 11 from crash.type_enums import CrashClient | 11 from crash.type_enums import CrashClient |
| 12 from libs.gitiles.change_log import ChangeLog | 12 from libs.gitiles.change_log import ChangeLog |
| 13 from libs.gitiles.change_log import Contributor | 13 from libs.gitiles.change_log import Contributor |
| 14 from model import analysis_status | 14 from model import analysis_status |
| 15 from model.crash.fracas_crash_analysis import FracasCrashAnalysis | 15 from model.crash.fracas_crash_analysis import FracasCrashAnalysis |
| 16 | 16 |
| 17 | 17 |
| 18 class CrashPipelineTest(PredatorTestCase): | 18 class CrashPipelineTest(PredatorTestCase): |
| 19 app_module = pipeline_handlers._APP | 19 app_module = pipeline_handlers._APP |
| 20 | 20 |
| 21 def testAnalysisAborted(self): | 21 def testAnalysisAborted(self): |
| 22 crash_identifiers = self.GetDummyCrashData()['crash_identifiers'] | 22 crash_identifiers = self.GetDummyChromeCrashData()['crash_identifiers'] |
| 23 analysis = FracasCrashAnalysis.Create(crash_identifiers) | 23 analysis = FracasCrashAnalysis.Create(crash_identifiers) |
| 24 analysis.status = analysis_status.RUNNING | 24 analysis.status = analysis_status.RUNNING |
| 25 analysis.put() | 25 analysis.put() |
| 26 | 26 |
| 27 pipeline = crash_pipeline.CrashAnalysisPipeline( | 27 pipeline = crash_pipeline.CrashAnalysisPipeline( |
| 28 CrashClient.FRACAS, | 28 CrashClient.FRACAS, |
| 29 crash_identifiers) | 29 crash_identifiers) |
| 30 pipeline._PutAbortedError() | 30 pipeline._PutAbortedError() |
| 31 analysis = FracasCrashAnalysis.Get(crash_identifiers) | 31 analysis = FracasCrashAnalysis.Get(crash_identifiers) |
| 32 self.assertEqual(analysis_status.ERROR, analysis.status) | 32 self.assertEqual(analysis_status.ERROR, analysis.status) |
| 33 | 33 |
| 34 def testFindCulpritFails(self): | 34 def testFindCulpritFails(self): |
| 35 crash_identifiers = self.GetDummyCrashData()['crash_identifiers'] | 35 crash_identifiers = self.GetDummyChromeCrashData()['crash_identifiers'] |
| 36 analysis = FracasCrashAnalysis.Create(crash_identifiers) | 36 analysis = FracasCrashAnalysis.Create(crash_identifiers) |
| 37 analysis.status = analysis_status.RUNNING | 37 analysis.status = analysis_status.RUNNING |
| 38 analysis.put() | 38 analysis.put() |
| 39 | 39 |
| 40 self.mock(FinditForFracas, 'FindCulprit', lambda *_: None) | 40 self.mock(FinditForFracas, 'FindCulprit', lambda *_: None) |
| 41 pipeline = crash_pipeline.CrashAnalysisPipeline( | 41 pipeline = crash_pipeline.CrashAnalysisPipeline( |
| 42 CrashClient.FRACAS, | 42 CrashClient.FRACAS, |
| 43 crash_identifiers) | 43 crash_identifiers) |
| 44 pipeline.run() | 44 pipeline.run() |
| 45 | 45 |
| 46 analysis = FracasCrashAnalysis.Get(crash_identifiers) | 46 analysis = FracasCrashAnalysis.Get(crash_identifiers) |
| 47 self.assertEqual(analysis_status.COMPLETED, analysis.status) | 47 self.assertEqual(analysis_status.COMPLETED, analysis.status) |
| 48 self.assertFalse(analysis.result['found']) | 48 self.assertFalse(analysis.result['found']) |
| 49 self.assertFalse(analysis.found_suspects) | 49 self.assertFalse(analysis.found_suspects) |
| 50 self.assertFalse(analysis.found_project) | 50 self.assertFalse(analysis.found_project) |
| 51 self.assertFalse(analysis.found_components) | 51 self.assertFalse(analysis.found_components) |
| 52 | 52 |
| 53 def testFindCulpritSucceeds(self): | 53 def testFindCulpritSucceeds(self): |
| 54 crash_identifiers = self.GetDummyCrashData()['crash_identifiers'] | 54 crash_identifiers = self.GetDummyChromeCrashData()['crash_identifiers'] |
| 55 analysis = FracasCrashAnalysis.Create(crash_identifiers) | 55 analysis = FracasCrashAnalysis.Create(crash_identifiers) |
| 56 analysis.status = analysis_status.RUNNING | 56 analysis.status = analysis_status.RUNNING |
| 57 analysis.put() | 57 analysis.put() |
| 58 | 58 |
| 59 dummy_cl = ChangeLog( | 59 dummy_cl = ChangeLog( |
| 60 Contributor('AUTHOR_NAME', 'AUTHOR_EMAIL', 'AUTHOR_TIME'), | 60 Contributor('AUTHOR_NAME', 'AUTHOR_EMAIL', 'AUTHOR_TIME'), |
| 61 Contributor('COMITTER_NAME', 'COMITTER_EMAIL', 'COMITTER_TIME'), | 61 Contributor('COMITTER_NAME', 'COMITTER_EMAIL', 'COMITTER_TIME'), |
| 62 'REVISION', | 62 'REVISION', |
| 63 'COMMIT_POSITION', | 63 'COMMIT_POSITION', |
| 64 'MESSAGE', | 64 'MESSAGE', |
| (...skipping 18 matching lines...) Expand all Loading... |
| 83 pipeline.run() | 83 pipeline.run() |
| 84 | 84 |
| 85 analysis = FracasCrashAnalysis.Get(crash_identifiers) | 85 analysis = FracasCrashAnalysis.Get(crash_identifiers) |
| 86 self.assertEqual(analysis_status.COMPLETED, analysis.status) | 86 self.assertEqual(analysis_status.COMPLETED, analysis.status) |
| 87 self.assertTrue(analysis.result['found']) | 87 self.assertTrue(analysis.result['found']) |
| 88 self.assertTrue(analysis.found_suspects) | 88 self.assertTrue(analysis.found_suspects) |
| 89 self.assertTrue(analysis.found_project) | 89 self.assertTrue(analysis.found_project) |
| 90 self.assertTrue(analysis.found_components) | 90 self.assertTrue(analysis.found_components) |
| 91 dummy_suspect, dummy_tags = dummy_culprit.ToDicts() | 91 dummy_suspect, dummy_tags = dummy_culprit.ToDicts() |
| 92 self.assertDictEqual(analysis.result, dummy_suspect) | 92 self.assertDictEqual(analysis.result, dummy_suspect) |
| OLD | NEW |