| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 import unittest |
| 8 | 8 |
| 9 from common.waterfall import failure_type | 9 from common.waterfall import failure_type |
| 10 from model.wf_analysis import WfAnalysis | |
| 11 from model import analysis_status | 10 from model import analysis_status |
| 12 from model import result_status | 11 from model import result_status |
| 12 from model.wf_analysis import WfAnalysis |
| 13 | 13 |
| 14 | 14 |
| 15 class WfAnalysisTest(unittest.TestCase): | 15 class WfAnalysisTest(unittest.TestCase): |
| 16 |
| 16 def testWfAnalysisStatusIsCompleted(self): | 17 def testWfAnalysisStatusIsCompleted(self): |
| 17 for status in (analysis_status.COMPLETED, analysis_status.ERROR): | 18 for status in (analysis_status.COMPLETED, analysis_status.ERROR): |
| 18 analysis = WfAnalysis.Create('m', 'b', 123) | 19 analysis = WfAnalysis.Create('m', 'b', 123) |
| 19 analysis.status = status | 20 analysis.status = status |
| 20 self.assertTrue(analysis.completed) | 21 self.assertTrue(analysis.completed) |
| 21 | 22 |
| 22 def testWfAnalysisStatusIsNotCompleted(self): | 23 def testWfAnalysisStatusIsNotCompleted(self): |
| 23 for status in (analysis_status.PENDING, analysis_status.RUNNING): | 24 for status in (analysis_status.PENDING, analysis_status.RUNNING): |
| 24 analysis = WfAnalysis.Create('m', 'b', 123) | 25 analysis = WfAnalysis.Create('m', 'b', 123) |
| 25 analysis.status = status | 26 analysis.status = status |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 def testWfAnalysisStatusIsNotFailed(self): | 58 def testWfAnalysisStatusIsNotFailed(self): |
| 58 for status in (analysis_status.PENDING, analysis_status.RUNNING, | 59 for status in (analysis_status.PENDING, analysis_status.RUNNING, |
| 59 analysis_status.COMPLETED): | 60 analysis_status.COMPLETED): |
| 60 analysis = WfAnalysis.Create('m', 'b', 123) | 61 analysis = WfAnalysis.Create('m', 'b', 123) |
| 61 analysis.status = status | 62 analysis.status = status |
| 62 self.assertFalse(analysis.failed) | 63 self.assertFalse(analysis.failed) |
| 63 | 64 |
| 64 def testWfAnalysisStatusDescription(self): | 65 def testWfAnalysisStatusDescription(self): |
| 65 analysis = WfAnalysis.Create('m', 'b', 123) | 66 analysis = WfAnalysis.Create('m', 'b', 123) |
| 66 analysis.status = analysis_status.PENDING | 67 analysis.status = analysis_status.PENDING |
| 67 self.assertEqual("Pending", analysis.status_description) | 68 self.assertEqual('Pending', analysis.status_description) |
| 68 analysis.status = analysis_status.RUNNING | 69 analysis.status = analysis_status.RUNNING |
| 69 self.assertEqual("Running", analysis.status_description) | 70 self.assertEqual('Running', analysis.status_description) |
| 70 analysis.status = analysis_status.COMPLETED | 71 analysis.status = analysis_status.COMPLETED |
| 71 self.assertEqual("Completed", analysis.status_description) | 72 self.assertEqual('Completed', analysis.status_description) |
| 72 analysis.status = analysis_status.ERROR | 73 analysis.status = analysis_status.ERROR |
| 73 self.assertEqual("Error", analysis.status_description) | 74 self.assertEqual('Error', analysis.status_description) |
| 74 | 75 |
| 75 def testWfAnalysisResultStatusDescription(self): | 76 def testWfAnalysisResultStatusDescription(self): |
| 76 analysis = WfAnalysis.Create('m', 'b', 123) | 77 analysis = WfAnalysis.Create('m', 'b', 123) |
| 77 | 78 |
| 78 self.assertEqual('', analysis.result_status_description) | 79 self.assertEqual('', analysis.result_status_description) |
| 79 analysis.result_status = result_status.FOUND_CORRECT | 80 analysis.result_status = result_status.FOUND_CORRECT |
| 80 self.assertEqual("Correct - Found", analysis.result_status_description) | 81 self.assertEqual('Correct - Found', analysis.result_status_description) |
| 81 | 82 |
| 82 def testWfAnalysisCorrectnessIsUnknownIfIncompletedOrFailed(self): | 83 def testWfAnalysisCorrectnessIsUnknownIfIncompletedOrFailed(self): |
| 83 for status in (analysis_status.PENDING, analysis_status.RUNNING, | 84 for status in (analysis_status.PENDING, analysis_status.RUNNING, |
| 84 analysis_status.ERROR): | 85 analysis_status.ERROR): |
| 85 analysis = WfAnalysis.Create('m', 'b', 123) | 86 analysis = WfAnalysis.Create('m', 'b', 123) |
| 86 analysis.status = status | 87 analysis.status = status |
| 87 self.assertIsNone(analysis.correct) | 88 self.assertIsNone(analysis.correct) |
| 88 | 89 |
| 89 def testWfAnalysisCorrectnessIsUnknownIfUntriaged(self): | 90 def testWfAnalysisCorrectnessIsUnknownIfUntriaged(self): |
| 90 for status in (result_status.FOUND_UNTRIAGED, | 91 for status in (result_status.FOUND_UNTRIAGED, |
| 91 result_status.NOT_FOUND_UNTRIAGED): | 92 result_status.NOT_FOUND_UNTRIAGED): |
| 92 analysis = WfAnalysis.Create('m', 'b', 123) | 93 analysis = WfAnalysis.Create('m', 'b', 123) |
| 93 analysis.status = analysis_status.COMPLETED | 94 analysis.status = analysis_status.COMPLETED |
| 94 analysis.result_status = status | 95 analysis.result_status = status |
| 95 self.assertIsNone(analysis.correct) | 96 self.assertIsNone(analysis.correct) |
| 96 | 97 |
| 97 def testWfAnalysisHasCorrectResult(self): | 98 def testWfAnalysisHasCorrectResult(self): |
| 98 for status in ( | 99 for status in ( |
| 99 result_status.FOUND_CORRECT, | 100 result_status.FOUND_CORRECT, |
| 100 result_status.NOT_FOUND_CORRECT, | 101 result_status.NOT_FOUND_CORRECT, |
| 101 result_status.FOUND_CORRECT_DUPLICATE): | 102 result_status.FOUND_CORRECT_DUPLICATE): |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 | 138 |
| 138 def testFailureTypeForLegacyDataWithFailedTestStep(self): | 139 def testFailureTypeForLegacyDataWithFailedTestStep(self): |
| 139 analysis = WfAnalysis.Create('m', 'b', 123) | 140 analysis = WfAnalysis.Create('m', 'b', 123) |
| 140 analysis.result = {'failures': [{'step_name': 'browser_tests'}]} | 141 analysis.result = {'failures': [{'step_name': 'browser_tests'}]} |
| 141 self.assertEqual(failure_type.TEST, analysis.failure_type) | 142 self.assertEqual(failure_type.TEST, analysis.failure_type) |
| 142 | 143 |
| 143 def testFailureTypeStr(self): | 144 def testFailureTypeStr(self): |
| 144 analysis = WfAnalysis.Create('m', 'b', 123) | 145 analysis = WfAnalysis.Create('m', 'b', 123) |
| 145 analysis.result = {'failures': [{'step_name': 'browser_tests'}]} | 146 analysis.result = {'failures': [{'step_name': 'browser_tests'}]} |
| 146 self.assertEqual('test', analysis.failure_type_str) | 147 self.assertEqual('test', analysis.failure_type_str) |
| 148 |
| 149 def testWfAnalysisIsDuplicate(self): |
| 150 for status in ( |
| 151 result_status.FOUND_CORRECT_DUPLICATE, |
| 152 result_status.FOUND_INCORRECT_DUPLICATE): |
| 153 analysis = WfAnalysis.Create('m', 'b', 123) |
| 154 analysis.result_status = status |
| 155 self.assertTrue(analysis.is_duplicate) |
| 156 |
| 157 def testWfAnalysisIsNotDuplicate(self): |
| 158 for status in ( |
| 159 result_status.FOUND_CORRECT, |
| 160 result_status.FOUND_INCORRECT, |
| 161 result_status.NOT_FOUND_INCORRECT, |
| 162 result_status.FOUND_UNTRIAGED, |
| 163 result_status.NOT_FOUND_UNTRIAGED, |
| 164 result_status.NOT_FOUND_CORRECT, |
| 165 None): |
| 166 analysis = WfAnalysis.Create('m', 'b', 123) |
| 167 analysis.result_status = status |
| 168 self.assertFalse(analysis.is_duplicate) |
| OLD | NEW |