| Index: appengine/findit/model/crash/test/crash_analysis_test.py
|
| diff --git a/appengine/findit/model/crash/test/crash_analysis_test.py b/appengine/findit/model/crash/test/crash_analysis_test.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4792c88447c937ebf368502c9b02dfc922372eb6
|
| --- /dev/null
|
| +++ b/appengine/findit/model/crash/test/crash_analysis_test.py
|
| @@ -0,0 +1,69 @@
|
| +# Copyright 2016 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +from datetime import datetime
|
| +
|
| +import unittest
|
| +
|
| +from model.crash.crash_analysis import CrashAnalysis
|
| +from model import analysis_status
|
| +from model import result_status
|
| +
|
| +
|
| +class CrashAnalysisTest(unittest.TestCase):
|
| + def testCrashAnalysisStatusIsCompleted(self):
|
| + for status in (analysis_status.COMPLETED, analysis_status.ERROR):
|
| + analysis = CrashAnalysis()
|
| + analysis.status = status
|
| + self.assertTrue(analysis.completed)
|
| +
|
| + def testCrashAnalysisStatusIsNotCompleted(self):
|
| + for status in (analysis_status.PENDING, analysis_status.RUNNING):
|
| + analysis = CrashAnalysis()
|
| + analysis.status = status
|
| + self.assertFalse(analysis.completed)
|
| +
|
| + def testCrashAnalysisDurationWhenNotCompleted(self):
|
| + analysis = CrashAnalysis()
|
| + analysis.status = analysis_status.RUNNING
|
| + self.assertIsNone(analysis.duration)
|
| +
|
| + def testCrashAnalysisDurationWhenStartTimeNotSet(self):
|
| + analysis = CrashAnalysis()
|
| + analysis.status = analysis_status.COMPLETED
|
| + analysis.started_time = datetime(2015, 07, 30, 21, 15, 30, 40)
|
| + analysis.completed_time = datetime(2015, 07, 30, 21, 16, 15, 50)
|
| + self.assertEqual(45, analysis.duration)
|
| +
|
| + def testCrashAnalysisStatusIsFailed(self):
|
| + analysis = CrashAnalysis()
|
| + analysis.status = analysis_status.ERROR
|
| + self.assertTrue(analysis.failed)
|
| +
|
| + def testCrashAnalysisStatusIsNotFailed(self):
|
| + for status in (analysis_status.PENDING, analysis_status.RUNNING,
|
| + analysis_status.COMPLETED):
|
| + analysis = CrashAnalysis()
|
| + analysis.status = status
|
| + self.assertFalse(analysis.failed)
|
| +
|
| + def testCrashAnalysisReset(self):
|
| + analysis = CrashAnalysis()
|
| + analysis.pipeline_status_path = ''
|
| + analysis.status = analysis_status.COMPLETED
|
| + analysis.requested_time = datetime.utcnow()
|
| + analysis.started_time = datetime.utcnow()
|
| + analysis.findit_version = ''
|
| + analysis.has_regression_range = True
|
| + analysis.found_suspects = True
|
| + analysis.solution = ''
|
| + analysis.Reset()
|
| + self.assertIsNone(analysis.pipeline_status_path)
|
| + self.assertEqual(analysis_status.PENDING, analysis.status)
|
| + self.assertIsNone(analysis.requested_time)
|
| + self.assertIsNone(analysis.started_time)
|
| + self.assertIsNone(analysis.findit_version)
|
| + self.assertIsNone(analysis.has_regression_range)
|
| + self.assertIsNone(analysis.found_suspects)
|
| + self.assertIsNone(analysis.solution)
|
|
|