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

Unified Diff: appengine/findit/handlers/flake/test/list_flakes_test.py

Issue 2435013005: [Findit] Updating flakiness dashboard to be able to triage results (Closed)
Patch Set: Fixing nit Created 4 years, 2 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
« no previous file with comments | « appengine/findit/handlers/flake/list_flakes.py ('k') | appengine/findit/index.yaml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/handlers/flake/test/list_flakes_test.py
diff --git a/appengine/findit/handlers/flake/test/list_flakes_test.py b/appengine/findit/handlers/flake/test/list_flakes_test.py
index a5bb622e8a9c5c1d6df7d9998f26d540cc11add3..3148961de21703fcd18e284ccf0d9471f65d7ac3 100644
--- a/appengine/findit/handlers/flake/test/list_flakes_test.py
+++ b/appengine/findit/handlers/flake/test/list_flakes_test.py
@@ -3,12 +3,14 @@
# found in the LICENSE file.
import datetime
-
+import mock
import webapp2
+from common import time_util
from handlers.flake import list_flakes
from handlers.flake.list_flakes import FilterMasterFlakeAnalysis
from model import analysis_status
+from model import result_status
from model.flake.master_flake_analysis import MasterFlakeAnalysis
from waterfall.test import wf_testcase
@@ -20,11 +22,12 @@ class FilterFlakeTest(wf_testcase.WaterfallTestCase):
def _CreateAndSaveMasterFlakeAnalysis(
self, master_name, builder_name, build_number,
- step_name, test_name):
+ step_name, test_name, request_time, status_code=None):
analysis = MasterFlakeAnalysis.Create(
master_name, builder_name, build_number, step_name, test_name)
- analysis.request_time = datetime.datetime(2016, 10, 01)
+ analysis.request_time = request_time
analysis.status = analysis_status.COMPLETED
+ analysis.result_status = status_code
analysis.put()
return analysis
@@ -40,55 +43,124 @@ class FilterFlakeTest(wf_testcase.WaterfallTestCase):
self.step_name2 = 's2'
self.test_name1 = 't1'
self.test_name2 = 't2'
+ self.request_time1 = datetime.datetime(2016, 10, 01)
+ self.request_time2 = datetime.datetime(2016, 10, 02)
+ self.result_status1 = result_status.FOUND_UNTRIAGED
+ self.result_status2 = result_status.FOUND_CORRECT
self.master_flake_analysis1 = self._CreateAndSaveMasterFlakeAnalysis(
self.master_name1, self.builder_name1, self.build_number1,
- self.step_name1, self.test_name1)
+ self.step_name1, self.test_name1, self.request_time1,
+ self.result_status1)
self.master_flake_analysis2 = self._CreateAndSaveMasterFlakeAnalysis(
self.master_name2, self.builder_name2, self.build_number2,
- self.step_name2, self.test_name2)
+ self.step_name2, self.test_name2, self.request_time2,
+ self.result_status2)
self.master_flake_analysis3 = self._CreateAndSaveMasterFlakeAnalysis(
self.master_name2, self.builder_name2, self.build_number2,
- self.step_name2, self.test_name1)
+ self.step_name2, self.test_name1, self.request_time1)
+
+ def testGetStartAndEndDatesNotInTriageMode(self):
+ self.assertEqual(
+ (None, None), list_flakes.ListFlakes()._GetStartAndEndDates(False))
+
+ @mock.patch.object(time_util, 'GetUTCNow')
+ def testGetStartAndEndDatesForTriageNoDatesSpecified(self, mock_fn):
+ flake_list = list_flakes.ListFlakes()
+ flake_list.request = {}
+ mock_now = datetime.datetime(2016, 10, 21, 1, 0, 0, 0)
+ mock_midnight_yesterday = datetime.datetime(2016, 10, 20, 0, 0, 0, 0)
+ mock_midnight_tomorrow = datetime.datetime(2016, 10, 22, 0, 0, 0, 0)
+ mock_fn.return_value = mock_now
+ start_date, end_date = flake_list._GetStartAndEndDates(True)
+ self.assertEqual(start_date, mock_midnight_yesterday)
+ self.assertEqual(end_date, mock_midnight_tomorrow)
+
+ @mock.patch.object(time_util, 'GetUTCNow')
+ def testGetStartAndEndDatesForTriageStartDateOnly(self, mock_fn):
+ flake_list = list_flakes.ListFlakes()
+ flake_list.request = {'start_date': '2016-10-19'}
+ mock_now = datetime.datetime(2016, 10, 21, 1, 0, 0, 0)
+ mock_midnight_start = datetime.datetime(2016, 10, 19, 0, 0, 0, 0)
+ mock_midnight_tomorrow = datetime.datetime(2016, 10, 22, 0, 0, 0, 0)
+ mock_fn.return_value = mock_now
+ start_date, end_date = flake_list._GetStartAndEndDates(True)
+ self.assertEqual(start_date, mock_midnight_start)
+ self.assertEqual(end_date, mock_midnight_tomorrow)
+
+ def testGetStartAndEndDatesForTriageWithDates(self):
+ flake_list = list_flakes.ListFlakes()
+ flake_list.request = {
+ 'start_date': '2016-10-11',
+ 'end_date': '2016-10-13'
+ }
+ mock_midnight_start = datetime.datetime(2016, 10, 11, 0, 0, 0, 0)
+ mock_midnight_end = datetime.datetime(2016, 10, 13, 0, 0, 0, 0)
+ start_date, end_date = flake_list._GetStartAndEndDates(True)
+ self.assertEqual(start_date, mock_midnight_start)
+ self.assertEqual(end_date, mock_midnight_end)
def testFilterMasterName(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
result = FilterMasterFlakeAnalysis(
- master_flake_analysis_query, self.master_name1, None, None, None, None)
+ master_flake_analysis_query, master_name=self.master_name1)
+
self.assertEqual(len(result), 1)
self.assertTrue(result == [self.master_flake_analysis1])
def testFilterBuilderName(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
- result = FilterMasterFlakeAnalysis(master_flake_analysis_query, None,
- self.builder_name1, None, None, None)
+ result = FilterMasterFlakeAnalysis(
+ master_flake_analysis_query, builder_name=self.builder_name1)
self.assertEqual(len(result), 1)
self.assertTrue(result == [self.master_flake_analysis1])
def testFilterBuildNumber(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
- result = FilterMasterFlakeAnalysis(master_flake_analysis_query, None, None,
- self.build_number1, None, None)
+ result = FilterMasterFlakeAnalysis(
+ master_flake_analysis_query, build_number=self.build_number1)
self.assertEqual(len(result), 1)
self.assertTrue(result == [self.master_flake_analysis1])
def testFilterStepName(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
result = FilterMasterFlakeAnalysis(
- master_flake_analysis_query, None, None, None, self.step_name1, None)
+ master_flake_analysis_query, step_name=self.step_name1)
self.assertEqual(len(result), 1)
self.assertTrue(result == [self.master_flake_analysis1])
def testFilterTestName(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
result = FilterMasterFlakeAnalysis(
- master_flake_analysis_query, None, None, None, None, self.test_name2)
+ master_flake_analysis_query, test_name=self.test_name2)
+ self.assertEqual(len(result), 1)
+ self.assertTrue(result == [self.master_flake_analysis2])
+
+ def testFilterResultStatus(self):
+ master_flake_analysis_query = MasterFlakeAnalysis.query()
+ result = FilterMasterFlakeAnalysis(
+ master_flake_analysis_query, status_code=result_status.FOUND_UNTRIAGED)
+ self.assertEqual(len(result), 1)
+ self.assertTrue(result == [self.master_flake_analysis1])
+
+ def testFilterStartDate(self):
+ master_flake_analysis_query = MasterFlakeAnalysis.query()
+ result = FilterMasterFlakeAnalysis(
+ master_flake_analysis_query, start_date=self.request_time2)
self.assertEqual(len(result), 1)
self.assertTrue(result == [self.master_flake_analysis2])
+ def testFilterEndDate(self):
+ master_flake_analysis_query = MasterFlakeAnalysis.query()
+ result = FilterMasterFlakeAnalysis(
+ master_flake_analysis_query, end_date=self.request_time2)
+ self.assertEqual(len(result), 2)
+ self.assertTrue(result == [self.master_flake_analysis1,
+ self.master_flake_analysis3])
+
def testFilterMultipleMasterName(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
result = FilterMasterFlakeAnalysis(
- master_flake_analysis_query, self.master_name2, None, None, None, None)
+ master_flake_analysis_query, master_name=self.master_name2)
self.assertEqual(len(result), 2)
self.assertTrue(result == [self.master_flake_analysis3,
self.master_flake_analysis2])
@@ -96,7 +168,7 @@ class FilterFlakeTest(wf_testcase.WaterfallTestCase):
def testFilterMultipleBuilderName(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
result = FilterMasterFlakeAnalysis(
- master_flake_analysis_query, None, self.builder_name2, None, None, None)
+ master_flake_analysis_query, builder_name=self.builder_name2)
self.assertEqual(len(result), 2)
self.assertTrue(result == [self.master_flake_analysis3,
self.master_flake_analysis2])
@@ -104,7 +176,7 @@ class FilterFlakeTest(wf_testcase.WaterfallTestCase):
def testFilterMultipleBuildNumber(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
result = FilterMasterFlakeAnalysis(
- master_flake_analysis_query, None, None, self.build_number2, None, None)
+ master_flake_analysis_query, build_number=self.build_number2)
self.assertEqual(len(result), 2)
self.assertTrue(result == [self.master_flake_analysis3,
self.master_flake_analysis2])
@@ -112,7 +184,7 @@ class FilterFlakeTest(wf_testcase.WaterfallTestCase):
def testFilterMultipleStepName(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
result = FilterMasterFlakeAnalysis(
- master_flake_analysis_query, None, None, None, self.step_name2, None)
+ master_flake_analysis_query, step_name=self.step_name2)
self.assertEqual(len(result), 2)
self.assertTrue(result == [self.master_flake_analysis3,
self.master_flake_analysis2])
@@ -120,7 +192,7 @@ class FilterFlakeTest(wf_testcase.WaterfallTestCase):
def testFilterMultipleTestName(self):
master_flake_analysis_query = MasterFlakeAnalysis.query()
result = FilterMasterFlakeAnalysis(
- master_flake_analysis_query, None, None, None, None, self.test_name1)
+ master_flake_analysis_query, test_name=self.test_name1)
self.assertEqual(len(result), 2)
self.assertTrue(result == [self.master_flake_analysis1,
self.master_flake_analysis3])
@@ -144,10 +216,19 @@ class FilterFlakeTest(wf_testcase.WaterfallTestCase):
'step_name': self.step_name1,
'test_name': self.test_name1,
'status': 'Completed',
+ 'result_status': result_status.RESULT_STATUS_TO_DESCRIPTION[
+ self.result_status1],
'suspected_build': None,
- 'request_time': '2016-10-01 00:00:00 UTC',
+ 'request_time': '2016-10-01 00:00:00 UTC'
}
- ]
+ ],
+ 'master_name_filter': '',
+ 'builder_name_filter': '',
+ 'build_number_filter': self.build_number1,
+ 'step_name_filter': '',
+ 'test_name_filter': '',
+ 'result_status_filter': result_status.UNSPECIFIED,
}
+
self.assertEquals(response.json_body, expected_result)
self.assertEquals(200, response.status_int)
« no previous file with comments | « appengine/findit/handlers/flake/list_flakes.py ('k') | appengine/findit/index.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698