| 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 | 6 |
| 7 import unittest | 7 from crash.test.crash_testcase import CrashTestCase |
| 8 | |
| 9 from model.crash.crash_analysis import CrashAnalysis | 8 from model.crash.crash_analysis import CrashAnalysis |
| 10 from model import analysis_status | 9 from model import analysis_status |
| 11 from model import result_status | 10 from model import result_status |
| 12 from model import triage_status | 11 from model import triage_status |
| 13 | 12 |
| 14 | 13 |
| 15 class CrashAnalysisTest(unittest.TestCase): | 14 class CrashAnalysisTest(CrashTestCase): |
| 16 def testCrashAnalysisStatusIsCompleted(self): | 15 def testCrashAnalysisStatusIsCompleted(self): |
| 17 for status in (analysis_status.COMPLETED, analysis_status.ERROR): | 16 for status in (analysis_status.COMPLETED, analysis_status.ERROR): |
| 18 analysis = CrashAnalysis() | 17 analysis = CrashAnalysis() |
| 19 analysis.status = status | 18 analysis.status = status |
| 20 self.assertTrue(analysis.completed) | 19 self.assertTrue(analysis.completed) |
| 21 | 20 |
| 22 def testCrashAnalysisStatusIsNotCompleted(self): | 21 def testCrashAnalysisStatusIsNotCompleted(self): |
| 23 for status in (analysis_status.PENDING, analysis_status.RUNNING): | 22 for status in (analysis_status.PENDING, analysis_status.RUNNING): |
| 24 analysis = CrashAnalysis() | 23 analysis = CrashAnalysis() |
| 25 analysis.status = status | 24 analysis.status = status |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 update = {'note': 'dummy'} | 87 update = {'note': 'dummy'} |
| 89 analysis = CrashAnalysis() | 88 analysis = CrashAnalysis() |
| 90 analysis.Update(update) | 89 analysis.Update(update) |
| 91 self.assertEqual(analysis.note, update['note']) | 90 self.assertEqual(analysis.note, update['note']) |
| 92 | 91 |
| 93 def testUpdateCrashAnalysisWithNonExistentProperty(self): | 92 def testUpdateCrashAnalysisWithNonExistentProperty(self): |
| 94 update = {'dummy': 'dummy_content'} | 93 update = {'dummy': 'dummy_content'} |
| 95 analysis = CrashAnalysis() | 94 analysis = CrashAnalysis() |
| 96 analysis.Update(update) | 95 analysis.Update(update) |
| 97 self.assertFalse(hasattr(analysis, 'dummy')) | 96 self.assertFalse(hasattr(analysis, 'dummy')) |
| 97 |
| 98 def testCreateCrashAnalysis(self): |
| 99 crash_identifiers = {'signature': 'sig'} |
| 100 analysis = CrashAnalysis.Create(crash_identifiers) |
| 101 analysis.put() |
| 102 self.assertIsNotNone(analysis) |
| 103 self.assertEqual(CrashAnalysis.Get(crash_identifiers), analysis) |
| OLD | NEW |