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

Unified Diff: appengine/findit/waterfall/test/try_job_util_test.py

Issue 1999653003: [Findit] Bailing out if build data is too old and moving relevant settings to config (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Addressing comments Created 4 years, 7 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/waterfall/test/try_job_util_test.py
diff --git a/appengine/findit/waterfall/test/try_job_util_test.py b/appengine/findit/waterfall/test/try_job_util_test.py
index d7c671fb8b923379ec6a64a173dbbe0d4e8a217d..70041d727c98d22fc7db4bec1c7baea183ee8678 100644
--- a/appengine/findit/waterfall/test/try_job_util_test.py
+++ b/appengine/findit/waterfall/test/try_job_util_test.py
@@ -2,8 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+from datetime import datetime
+from datetime import timedelta
+
from common.waterfall import failure_type
from model import analysis_status
+from model.wf_build import WfBuild
from model.wf_try_job import WfTryJob
from waterfall import try_job_util
from waterfall.test import wf_testcase
@@ -66,6 +70,10 @@ class TryJobUtilTest(wf_testcase.WaterfallTestCase):
'SwarmingTasksToTryJobPipeline', _MockRootPipeline)
_MockRootPipeline.STARTED = False
+ build = WfBuild.Create(master_name, builder_name, build_number)
+ build.start_time = datetime.utcnow()
stgao 2016/05/21 04:26:41 This might make the test flaky as it depends on th
+ build.put()
+
failure_result_map = try_job_util.ScheduleTryJobIfNeeded(
failure_info, None, None)
@@ -86,11 +94,48 @@ class TryJobUtilTest(wf_testcase.WaterfallTestCase):
'failure_type': failure_type.TEST
}
+ build = WfBuild.Create(master_name, builder_name, build_number)
+ build.start_time = datetime.utcnow()
+ build.put()
+
failure_result_map = try_job_util.ScheduleTryJobIfNeeded(
failure_info, None, None)
self.assertEqual({}, failure_result_map)
+ def testBailOutForTryJobWithOutdatedTimestamp(self):
+ master_name = 'master3'
+ builder_name = 'builder3'
+ build_number = 223
+ failure_info = {
+ 'master_name': master_name,
+ 'builder_name': builder_name,
+ 'build_number': build_number,
+ 'failed_steps': {
+ 'compile': {
+ 'current_failure': 221,
+ 'first_failure': 221,
+ 'last_pass': 220
+ }
+ },
+ }
+
+ self.mock(
+ try_job_util.swarming_tasks_to_try_job_pipeline,
+ 'SwarmingTasksToTryJobPipeline', _MockRootPipeline)
+ _MockRootPipeline.STARTED = False
+
+ yesterday = datetime.utcnow() - timedelta(days=1)
+ build = WfBuild.Create(master_name, builder_name, build_number)
+ build.start_time = yesterday
+ build.put()
+
+ failure_result_map = try_job_util.ScheduleTryJobIfNeeded(
+ failure_info, None, None)
+
+ self.assertFalse(_MockRootPipeline.STARTED)
+ self.assertEqual({}, failure_result_map)
+
def testNotNeedANewTryJobIfNotFirstTimeFailure(self):
master_name = 'm'
builder_name = 'b'
@@ -132,6 +177,10 @@ class TryJobUtilTest(wf_testcase.WaterfallTestCase):
'SwarmingTasksToTryJobPipeline', _MockRootPipeline)
_MockRootPipeline.STARTED = False
+ build = WfBuild.Create(master_name, builder_name, build_number)
+ build.start_time = datetime.utcnow()
+ build.put()
+
try_job_util.ScheduleTryJobIfNeeded(failure_info, None, None)
self.assertFalse(_MockRootPipeline.STARTED)
@@ -367,6 +416,10 @@ class TryJobUtilTest(wf_testcase.WaterfallTestCase):
'SwarmingTasksToTryJobPipeline', _MockRootPipeline)
_MockRootPipeline.STARTED = False
+ build = WfBuild.Create(master_name, builder_name, build_number)
+ build.start_time = datetime.utcnow()
+ build.put()
+
try_job_util.ScheduleTryJobIfNeeded(failure_info, None, None)
try_job = WfTryJob.Get(master_name, builder_name, build_number)

Powered by Google App Engine
This is Rietveld 408576698