Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(603)

Side by Side Diff: appengine/findit/model/test/wf_analysis_test.py

Issue 2086113004: [Findit] Show build analysis references in UI for Findit Cross-platform auto-triage (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@build-matching
Patch Set: Rebased on tip of tree Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « appengine/findit/handlers/triage_analysis.py ('k') | appengine/findit/model/wf_analysis.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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)
OLDNEW
« no previous file with comments | « appengine/findit/handlers/triage_analysis.py ('k') | appengine/findit/model/wf_analysis.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698