Chromium Code Reviews| 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) |