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

Unified Diff: appengine/findit/handlers/test/triage_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: Moved duplicator reference reset code, put duplicate info behind debug boolean, fixed js style Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: appengine/findit/handlers/test/triage_analysis_test.py
diff --git a/appengine/findit/handlers/test/triage_analysis_test.py b/appengine/findit/handlers/test/triage_analysis_test.py
index cfb0ccbe8633dbfac65d2a865101af940be57930..8c442b02fdbbca124a7921a20ad8624f05fd11a9 100644
--- a/appengine/findit/handlers/test/triage_analysis_test.py
+++ b/appengine/findit/handlers/test/triage_analysis_test.py
@@ -5,10 +5,8 @@
from datetime import datetime
from datetime import timedelta
-from google.appengine.ext import ndb
-import webapp2
-
from testing_utils import testing
+import webapp2
from handlers import triage_analysis
from model import analysis_status
@@ -125,7 +123,11 @@ class TriageAnalysisTest(testing.AppengineTestCase):
build_url = 'http://invalid/build/url'
response = self.test_app.get(
'/triage-analysis',
- params={'url': build_url, 'correct': True, 'format': 'json'})
+ params={
+ 'url': build_url,
+ 'correct': True,
+ 'format': 'json'
+ })
self.assertEquals(200, response.status_int)
self.assertEquals({'success': False}, response.json_body)
@@ -134,18 +136,36 @@ class TriageAnalysisTest(testing.AppengineTestCase):
self.master_name, self.builder_name, self.build_number_found)
response = self.test_app.get(
'/triage-analysis',
- params={'url': build_url, 'correct': True, 'format': 'json'})
+ params={
+ 'url': build_url,
+ 'correct': True,
+ 'format': 'json'
+ })
self.assertEquals(200, response.status_int)
- self.assertEquals({'success': True}, response.json_body)
+ self.assertEquals(
+ {
+ 'success': True,
+ 'num_duplicate_analyses': 0
+ },
+ response.json_body)
def testIncompleteTriage(self):
build_url = buildbot.CreateBuildUrl(
self.master_name, self.builder_name, self.build_number_incomplete)
response = self.test_app.get(
'/triage-analysis',
- params={'url': build_url, 'correct': True, 'format': 'json'})
+ params={
+ 'url': build_url,
+ 'correct': True,
+ 'format': 'json'
+ })
self.assertEquals(200, response.status_int)
- self.assertEquals({'success': False}, response.json_body)
+ self.assertEquals(
+ {
+ 'success': False,
+ 'num_duplicate_analyses': 0
+ },
+ response.json_body)
def testAnalysesMatch(self):
analysis_with_empty_failures = WfAnalysis.Create(
@@ -364,11 +384,7 @@ class TriageAnalysisTest(testing.AppengineTestCase):
analysis.result = {
'failures': [
{
- 'suspected_cls': [
- {
- 'revision': 'abc',
- }
- ],
+ 'suspected_cls': self.suspected_cls,
'step_name': 'step_4',
}
]
@@ -376,6 +392,7 @@ class TriageAnalysisTest(testing.AppengineTestCase):
analysis.result_status = result_status.FOUND_UNTRIAGED
analysis.build_start_time = build_start_time
analysis.status = analysis_status.COMPLETED
+ analysis.suspected_cls = self.suspected_cls
analysis.put()
return analysis
@@ -435,7 +452,7 @@ class TriageAnalysisTest(testing.AppengineTestCase):
self.assertEquals(
len(triage_analysis._GetDuplicateAnalyses(analysis_original)), 0)
- def testGetDuplicateAnalysesNotToday(self):
+ def testGetDuplicateAnalysesPastEndBoundTime(self):
# Tomorrow, UTC Noon.
original_time = (datetime.utcnow() + timedelta(days=1)).replace(
hour=12, minute=0, second=0, microsecond=0)
@@ -447,19 +464,36 @@ class TriageAnalysisTest(testing.AppengineTestCase):
self.assertEquals(
len(triage_analysis._GetDuplicateAnalyses(analysis_original)), 0)
- def testTriageDuplicateResults(self):
+ def testTriageDuplicateResultsFoundCorrectDuplicate(self):
# Two days ago, UTC Noon.
original_time = (datetime.utcnow() - timedelta(days=2)).replace(
hour=12, minute=0, second=0, microsecond=0)
analysis_original = self._createAnalysis(310, original_time)
- # Create another analysis at the same time (also two days ago).
- self._createAnalysis(311, original_time)
+ # Create another analysis a bit later (also two days ago).
+ self._createAnalysis(311, original_time + timedelta(minutes=1))
- triage_analysis._TriageDuplicateResults(analysis_original, True)
+ triage_analysis._TriageAndCountDuplicateResults(analysis_original,
+ is_correct=True)
second_analysis = WfAnalysis.Get(self.master_name, self.builder_name, 311)
- self.assertEquals(result_status.NOT_FOUND_CORRECT,
+ self.assertEquals(result_status.FOUND_CORRECT_DUPLICATE,
second_analysis.result_status)
+ def testTriageDuplicateResultsFoundIncorrectDuplicate(self):
+ # Two days ago, UTC Noon.
+ original_time = (datetime.utcnow() - timedelta(days=2)).replace(
+ hour=12, minute=0, second=0, microsecond=0)
+ analysis_original = self._createAnalysis(312, original_time)
+
+ # Create another analysis a bit later (also two days ago).
+ self._createAnalysis(313, original_time + timedelta(minutes=1))
+
+ triage_analysis._TriageAndCountDuplicateResults(analysis_original,
+ is_correct=False)
+
+ second_analysis = WfAnalysis.Get(self.master_name, self.builder_name, 313)
+
+ self.assertEquals(result_status.FOUND_INCORRECT_DUPLICATE,
+ second_analysis.result_status)

Powered by Google App Engine
This is Rietveld 408576698